【问题标题】:struts logic tags rendering html format, JSTL tags do notstruts逻辑标签呈现html格式,JSTL标签不呈现
【发布时间】:2014-10-14 04:35:09
【问题描述】:

我正在从数据库中读取一些消息并将其扔到 jsp 页面。当使用 struts 逻辑标签从数据库中呈现消息时,数据库中的消息允许 HTML 格式,这意味着如果在数据库消息中使用诸如 <table width="99%"> 之类的 html 标签,那么在使用 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 格式尚未按原样呈现到页面(意味着包括数据库消息中的 &lt;table width="99%"&gt;)?

【问题讨论】:

  • 定义“未正确渲染”。此外,&lt;c:out&gt; 默认转义 HTML。

标签: java html jsp struts2 jstl


【解决方案1】:

JSTL &lt;c:out&gt; 标签默认在 value 属性中转义 XML。因此它可以防止从表达式变量呈现一些不需要的代码 XSS。在大多数情况下,您不应该 &lt;c:out&gt; 要呈现的 html 内容。但是有一个开关,您可以自行承担风险。

<c:out value="${pubParam.fieldName}" escapeXml="false"/>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-13
    • 2017-09-07
    • 2019-02-09
    相关资源
    最近更新 更多