【jsp+servelet】JSTL <c:out>使用 escapeXml 属性保持 HTML 格式编排

JSTL core tag的<c:out>fn:escapeXml();用來處理XML或HTML中被視為標記(markup)的字元,會將其轉成一般字串處理,(?)。

也就是說,若從後端輸出的字串中帶有特殊字元,例如斜線(slash)"/",反斜線(back-slash)"\","<",">"等等,若要其表現方式為字串而非成為HTML的效果或避免不必要的影響,就使用<c:out>來處理比較好。

<c:out>的escapeXml屬性預設為true,其功能就同fn:escapeXml();,若改為false則為關閉,例如

 

<c:out value="${employee.name}" escapeXml="false" default="NA"/>

 

<c:out>的屬性(attribute)除了espaceXml外,還有value及default。

 

value是必填的屬性,作用輸出server端帶出的值,可以是個單一變數,或是一個bean。

<c:out>功能類似JSP scriptlet的<%= ... %>,差異是<c:out>除了上面的escapeXml功能外,還可直接用 "." 來存取Java Bean的性質,例如上面範例的 value=${employee.name}。

 

default是option的屬性,作用是若value輸出的結果為null,則會以default的值取代。

示例:

当您正在访问内部参数时,仅将 escapeXML 属性设置为 false,而不是在 URL 上指定参数或属性。使用未转义的 URL 参数时,这些页面易受 XSS 攻击的影响。
<c:out value="${product.listPrice}" />
作为日元符号,¥使用 &yen; 命名的字符实体显示,缺省转换将导致显示为 &yen;3,544 的 ¥ 3,544 的价格。
要防止此转换,应该将 escapeXml 显示设置为 false,如下所示:
<c:out value="${product.listPrice}" escapeXml="false" />

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值