You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Struts7中<s:radio>的<br/>标签未换行反而被原样渲染问题

Struts 2.5.33 迁移至 Struts 7.0.0 后 Radio 标签换行失效问题

问题描述

将 Struts 应用从 2.5.33 迁移到 7.0.0 后,原 Radio 标签代码中 list 项里的 <br/> 标签不再被解析为换行,而是直接以文本形式显示在页面上。

原 Struts 2.5.33 代码:

<s:radio theme="simple" name="dtype" list="#{'key1':'value1<br/>','key2':'value2'}" onclick="customJSfunction()" />

在 2.5.33 中可正常渲染为换行效果:

value1
value2

但迁移至 7.0.0 后,渲染效果变为:

value1<br/> value2

已尝试在 struts.xml 中添加 <constant name="struts.ui.escapeHtmlBody" value="false" />,但无效果,且未找到类似旧版本的 escapeHTML=false 属性。

解决方案

方案1:为 Radio 标签添加 escape="false" 属性

Struts 7.0.0 的 UI 标签支持通过 escape 属性控制是否转义 HTML,直接在标签上添加该属性即可:

<s:radio theme="simple" name="dtype" list="#{'key1':'value1<br/>','key2':'value2'}" onclick="customJSfunction()" escape="false" />

方案2:使用 OGNL 的 raw() 函数包裹需解析的 HTML 内容

通过 OGNL 的 raw() 函数标记无需转义的字符串,确保 <br/> 被浏览器解析为换行:

<s:radio theme="simple" name="dtype" list="#{'key1':raw('value1<br/>'),'key2':'value2'}" onclick="customJSfunction()" />

方案3:调整全局转义配置常量

尝试替换原配置的常量,使用 struts.ui.escapeHtml 全局控制 HTML 转义:

<constant name="struts.ui.escapeHtml" value="false" />

内容的提问来源于stack exchange,提问作者bikramjit naha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 02:12:20