struts逻辑标签呈现html格式,JSTL标签没有

时间:2014-08-20 17:41:31

标签: java html jsp struts2 jstl

我正在从数据库中读取一些消息并将其扔到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格式化还没有被渲染到页面上(意味着包括数据库消息中的<table width="99%">)?

1 个答案:

答案 0 :(得分:1)

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

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