Strutsのタグ

Struts1.3.8のタグの話。

DBに入っているURLをタグで出力しようとして、href属性を使えばいいのかなーと思ったのだが、href属性の値はHTMLエンコードされずに出力されてしまう。

JSP

<%
    String url = "http://www.example.co.jp\" onclick=\"alert('hello!')";
%>
<html:link href="<%= url %>">Click Me!</html:link>

レンダリング結果:

<a href="http://www.example.co.jp" onclick="alert('hello!')">Click Me!</a>

よってユーザが外部から指定したURLにリンクを張るようなアプリケーションの場合は注意が必要。

Strutsの他のカスタムタグの属性については調べていないが、自前でHTMLエンコードしないといけないケースは多いのかも。