日期:2014-05-16  浏览次数:20474 次

jstl escapeXml 属性设置

? 最近修改了一个老系统。系统用STURTS1 做的 服务端ACTION 获取的消息比较长 输出到JSP 页面后发现没有换行

? 服务端部分代码

?? request.setAttribute(Constants.BIZ_MESSAGE, "提示:纳税人普通发票机打资格信息登记成功!<br>"+message.toString());

return mapping.findForward("enterTaxpayerExport");

? ??输出JSP 页面 用了一个自定义标签显示 输出用 JSTL 显示

? ??<auto:msg id="message" type="1">

<c:out value="${message}" ?/>

? ?</auto:msg>

? ? 显示结果消息没有换行


?在服务端JAVA 代码中折腾了好久 ?换成成 换行符号\n 还是没有效果

最后偶然发现是由于输出JSTL 对原始数据字符串信息加工了

就是escapeXml 属性的问题

后来修改?

<c:out value="${message}" escapeXml="false" />

问题解决

分析是由于escapeXml="false" 设置后 JSTL 将原始数据字符串输出,

其中我后台字符串中有了<BR> 换行了也一并输出,到了HTML 页面显示换行

达到预期效果



平时不经常用的东西有时候很耽误你狠长时间,哎 也怪最近基础不扎实