Struts2 Checkboxlist如何将选项值指定内容显示为粗体?
解决Struts2 checkboxlist渲染HTML标签的问题
其实Struts2的checkboxlist标签本身没有直接对应s:property的escape属性,但我们有两种可靠的方式实现你要的粗体文本效果:
方法1:手动遍历构建复选框(灵活可控)
如果需要更精细的控制,直接用s:iterator遍历你的属性列表,手动渲染每个复选框和文本,这时候就能用s:property的escape="false"来解析HTML标签:
<s:iterator value="yourAttributeList" var="item"> <input type="checkbox" name="selectedOptions" value="<s:property value='code'/>" /> <!-- 这里的value是带<b>标签的文本,escape="false"让HTML生效 --> <s:property value="displayText" escape="false" /> <br> </s:iterator>
假设你的列表项是包含code(提交值)和displayText(比如<b>A</b> : for Apple)的对象。
方法2:利用checkboxlist的escapeHtml属性(更简洁)
Struts2的UI标签大多支持escapeHtml属性,checkboxlist也不例外。直接给标签加上这个属性并设为false,就能让列表值里的HTML标签被正确渲染:
<s:checkboxlist name="selectedOptions" list="yourAttributeList" listKey="code" listValue="displayText" escapeHtml="false" />
这样你的displayText里的<b>A</b> : for Apple就会把A显示为粗体,而不是输出源码。
⚠️ 重要提醒:
如果你的列表内容来自用户输入,一定要做XSS过滤!关闭HTML转义后,恶意的HTML/JS代码可能会被执行,带来安全风险。
内容的提问来源于stack exchange,提问作者swetha
相关产品推荐
相关产品推荐

