我想在里面使用一个
s:set
变量s:select
:
<s:set var="cityNY">NewYork</s:set>
<s:select name="cities" list="#{'%{#cityNY}':'%{#cityNY}'}" required="true" />
上面只是在我的页面中打印相同的值 -
%{#cityNY}
想要在
s:set
标签的选项中显示 if s:select
变量的值
您需要将上下文变量直接放入 OGNL 表达式而无需
%{}
。它将实例化一个地图。
<s:select name="cities" list="#{#cityNY:#cityNY}" required="true" />
list
属性值可以包含 OGNL 表达式。它默认用于解析 OGNL 的值而无需显式%{}
。可以在 OGNL 表达式中直接引用子表达式。 #{exp1:exp2}
是一个 OGNL 表达式来实例化一个 Map
。它里面有子表达式。每个子表达式应该返回一个不是集合的值。因为他们曾经为地图创建一个键/值对。
如果您使用相同的子表达式,那么最好使用以下代码实例化一个
List
<s:select name="cities" list="{#cityNY}" required="true" />
它将生成一个 HTML
<select>
标签,其中有一个 <option>
具有相同的值和文本。
如果您需要更多选项,那么您应该使用逗号向 OGNL 表达式添加值。
的回答中找到参考文档