準退休工程師的日常
在JSP若要同時使用<c:out>及<fmt:formatNumber>可以利用下面寫法。
<c:out>
<fmt:formatNumber>
如果在jsp頁面傳遞request value時,通常會在EL語法套上<c:out value="${...}"/>或${fn:escapeXml(...)}來防止XSS攻擊的潛在風險,也就是把html的特殊符號(e.g.&,<,>,",')取代成html代碼,但如果傳遞的request值為JSONObject就無法使用<c:out>了,因為json中的雙引號為xml跳脫字元,會被取代成html code '
<c:out value="${...}"/>
${fn:escapeXml(...)}
&
<
>
"
'
'
JSTL <c:out>有個跳脫xml字元的屬性escapeXml預設為true。其所跳脫的字元如下。
escapeXml
true
在JSP的EL可使用JSTL的fn:substring()取得子字串
fn:substring()
在JSP幾乎都會用到的taglibs(標籤庫)例如JSTL,可以放在一個共用的JSP片段中在include至要使用的JSP頁面中,例如
本篇介紹JSTL(JSP Standard Tag Library)的格式化標籤(formatting tags)。
JSTL core tag的<c:out>及fn:escapeXml()用來處理XML或HTML中被視為標記(markup)的字元,會轉成一般字串處理。
fn:escapeXml()