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

JSP集成Struts2时s:url标签提示TLD中id属性无效如何解决

错误原因

Struts2 2.1及更高版本中,<s:url>标签的id属性已被官方废弃移除,TLD(标签库描述符)中已经不存在该属性的定义,所以使用id属性会直接触发校验报错。同时你代码中使用了indexFR变量,但未提前定义对应的<s:url>,后续还会触发变量未找到的运行时异常。

解决方案
  • 将所有<s:url>标签的id属性统一替换为官方指定的var属性,二者作用完全一致,都是用于存储生成的URL路径到指定变量中
  • 补充indexFR对应的<s:url>定义
修正后完整代码
<s:url var = "indexEN" namespace="/" action = "locale" >
  <s:param name = "request_locale" >en</s:param>
</s:url>
    
<s:url var = "indexES" namespace="/" action = "locale" >
  <s:param name = "request_locale" >es</s:param>
</s:url>

<!-- 补充法语对应的url定义 -->
<s:url var = "indexFR" namespace="/" action = "locale" >
  <s:param name = "request_locale" >fr</s:param>
</s:url>
        
<s:a href="%{indexEN}" >English</s:a>
      
<s:a href="%{indexES}" >Spanish</s:a>
      
<s:a href="%{indexFR}" >France</s:a>

修改完成后重新部署项目即可消除报错。

内容的提问来源于stack exchange,提问作者Danny me

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 22:54:05