我正在从数据库中读取一些消息并将其发送到 jsp 页面。当使用 struts 逻辑标签呈现来自数据库的消息时,数据库中的消息允许 HTML 格式,这意味着如果一个 html 标签如 <table width="99%">
在数据库消息中使用然后它将在使用 struts 逻辑标记时正确呈现此 html...但是如果 JSTL 用于呈现对象(数据库消息)则 html 格式不会正确呈现。
struts 逻辑标签的一个例子是:
<div class="textTitle"><bean:write name="blahBlah" filter="false" property="displayObjects[1].fieldName"/></div>
JSTL 标签的一个例子是:
<td width="30%" class="formOpt"><c:out value="${pubParam.fieldName}"/>:</td>
注意我使用c:out
对于 JSTL 和 bean:write
对于 struts 标签..
有谁知道为什么在 JSTL 中 html 格式没有被呈现但仍按原样扔到页面(意味着包括数据库消息中的 <table width="99%">
)?
最佳答案
江苏实验室<c:out>
默认情况下,标签在 value 属性中转义 XML。因此,它可以防止从表达式变量中呈现一些不需要的 XSS 代码。在大多数情况下,你不应该 <c:out>
您要呈现的 html 内容。但是您可以使用一个开关,风险自负。
<c:out value="${pubParam.fieldName}" escapeXml="false"/>
关于java - struts逻辑标签呈现html格式,JSTL标签不,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25411157/