如何使用struts2 s:set variable inside s:select tag for list values?

问题描述 投票:0回答:1

我想在里面使用一个

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
变量的值

jsp select struts2 ognl struts-tags
1个回答
0
投票

您需要将上下文变量直接放入 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 表达式添加值。

您可以在我对 OGNL/Struts2 JSP assigning bean to an object.

的回答中找到参考文档
© www.soinside.com 2019 - 2024. All rights reserved.