JSP で表示するための一工夫
================================================
■自分自身の Web アプリケーションのパス
リンクの href 属性や、フォームの action 属性など
で URL を指定するときに、自分自身の Web アプリ
ケーションのパスを動的に取得します。
□使い方の例
${pageContext.request.contextPath} は、
HttpServletRequest インターフェースの
getContextPath() メソッドで取得できるので、EL で
は、これを利用しています。
■クロスサイトスクリプティング対策
基本的には、表示するところで山括弧「<」「>」など
をエスケープします。これをサニタイジングといいま
す。
このための JSTL のタグとして、out タグがあります。
□使い方の例
単純に ${product.name} だけにすると、この name
の中に HTML のタグがあった場合、意図したとおりの
表示になりません。
out タグを使うことで、「<」「>」「&」「'」「"」
をそれぞれ「<」「>」「&」「'」
「"」にエスケープします。
■数値をフォーマットして表示
数値 3桁区切りにしたり、通貨記号をつけて表示しま
す。
□使い方の例
□表示結果 (price が 12345 のとき)
この formatNumber タグは、JSTL のコアタグではな
く、国際化タグなので、コアタグの taglib ディレク
ティブとは別に、fmt タグに対する taglib ディレク
ティブを指定する必要があります。
□属性の補足
type "currency" を指定すると、通貨の形式(3桁
区切りで小数点以下第2位まで表示)
currencySymbol 通貨単位。「」を表示する場合は、
「」のようにエスケープする。
maxFractionDigits 小数点以下の最大の桁数。円の
ときは、小数点以下がないのが
普通なので、0 を指定しておく。
以上
================================================
■自分自身の Web アプリケーションのパス
リンクの href 属性や、フォームの action 属性など
で URL を指定するときに、自分自身の Web アプリ
ケーションのパスを動的に取得します。
□使い方の例
--- <form action="${pageContext.request.contextPath}/cart" method="post"> ---
${pageContext.request.contextPath} は、
HttpServletRequest インターフェースの
getContextPath() メソッドで取得できるので、EL で
は、これを利用しています。
■クロスサイトスクリプティング対策
基本的には、表示するところで山括弧「<」「>」など
をエスケープします。これをサニタイジングといいま
す。
このための JSTL のタグとして、out タグがあります。
□使い方の例
--- <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> : <c:out value="${product.name}"/> ---
単純に ${product.name} だけにすると、この name
の中に HTML のタグがあった場合、意図したとおりの
表示になりません。
out タグを使うことで、「<」「>」「&」「'」「"」
をそれぞれ「<」「>」「&」「'」
「"」にエスケープします。
■数値をフォーマットして表示
数値 3桁区切りにしたり、通貨記号をつけて表示しま
す。
□使い方の例
--- <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> : <fmt:formatNumber value="${product.price}" type="currency" currencySymbol="" maxFractionDigits="0"/> ---
□表示結果 (price が 12345 のとき)
--- 12,345 ---
この formatNumber タグは、JSTL のコアタグではな
く、国際化タグなので、コアタグの taglib ディレク
ティブとは別に、fmt タグに対する taglib ディレク
ティブを指定する必要があります。
□属性の補足
type "currency" を指定すると、通貨の形式(3桁
区切りで小数点以下第2位まで表示)
currencySymbol 通貨単位。「」を表示する場合は、
「」のようにエスケープする。
maxFractionDigits 小数点以下の最大の桁数。円の
ときは、小数点以下がないのが
普通なので、0 を指定しておく。
以上
※コメント投稿者のブログIDはブログ作成者のみに通知されます