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

如何在Struts2的s:select标签列表值中使用s:set变量?

解决Struts2中s:select使用s:set变量的问题

你的问题出在OGNL表达式的写法上:在list属性的Map定义里,你把%{#cityNY}当成了字符串字面量,导致页面直接输出这段文本而不是解析变量值。

正确写法

直接在OGNL Map中引用#cityNY变量即可,无需额外套%{}(因为list属性本身就处于OGNL解析上下文):

<s:set var="cityNY">NewYork</s:set>

<s:select name="cities" list="#{#cityNY:#cityNY}" required="true" />

扩展:多选项场景

如果需要添加多个城市选项,同样直接引用对应的变量:

<s:set var="cityNY">NewYork</s:set>
<s:set var="cityLA">LosAngeles</s:set>

<s:select name="cities" list="#{#cityNY:#cityNY, #cityLA:#cityLA}" required="true" />

这样页面渲染时,#cityNY会被解析为实际值NewYork,生成的下拉选项就会显示正确的城市名称。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 01:50:20