JSP 如何在s:select标签中使用struts2 s:set variable来获取列表值?

zz2j4svz  于 2023-01-15  发布在  其他
关注(0)|答案(1)|浏览(136)

我想在s:select中使用s:set变量

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

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

上面的代码只是在我的页面中打印了相同的值-%{#cityNY}
如果s:set变量在s:select标记的选项中,我想显示该值

wsewodh2

wsewodh21#

你需要直接把一个上下文变量放到OGNL表达式中,而不需要%{}。它将示例化一个Map。

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

list属性值可以包含OGNL表达式。默认情况下,它用于分析OGNL的值,而无需显式%{}。可以在OGNL表达式内部直接引用子表达式。#{exp1:exp2}是用于示例化Map的OGNL表达式。它内部包含子表达式。每个子表达式应返回单个值,而不是集合。因为它们用于创建键/Map的值对。
如果使用相同的子表达式,最好使用以下代码示例化List

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

它将生成一个HTML <select>标记,其中一个<option>具有相同的值和文本。
如果需要更多选项,则应使用逗号向OGNL表达式添加值。
您可以在我对OGNL/Struts2 JSP assigning bean to an object的回答中找到参考文档。

相关问题