在OGNL中使用显示为空格而不是空格

时间:2011-06-09 16:16:43

标签: struts2 html-entities ognl

我在jsp中有以下嵌套的struts 2标签。这是在另一个迭代器中,而迭代器又在html表的td标记内。

<s:property value="#rule.value" />
<s:set var="blanks" value="''" />
<s:iterator value="(#rule.key.length()).{ #this }">
   <s:set var="blanks" value="%{#blanks + '&nbsp;'}" />
</s:iterator>
<s:property value="#blanks" />

总体目标是渲染您在浏览器中的同一行上看到的所有s:属性值。对于某些标签(如文本字段),您可以更改主题属性,但不会尝试在自己的行上打印所有内容。但无论如何,我需要迭代器标记内同一行的所有内容。

所以我在这里要做的就是建立一个字符串。每次迭代此代码段时,此类字符串的长度都会更改。当我运行它时,迭代器执行正确的次数,但我的输出是&nbsp;&nbsp;&nbsp; .....循环被迭代多次。我需要每个html空间输出。最终,我需要td中有一定数量的字符,以便这个表和一个单独的表同步到屏幕格式。

3 个答案:

答案 0 :(得分:3)

您忘记了escapeHtml

<s:property value="#blanks" escapeHtml="false" />  

或只是

${blanks}

<小时/> escapeHtml / escape(已弃用)默认为true


答案 1 :(得分:2)

我对JSP标签了解不多,但我偶尔遇到它们......你见过escapeXml="false"吗? (用于c:out标签)

答案 2 :(得分:0)

只需使用&nbsp;代替&nbsp即可轻松格式化并在struts框架中随处提供空格,并避免太多复杂性。