Java 使用Struts Select标记指定选项标签(listValue)
标签的listValue属性用于指定在选择该选项时应显示给用户的标签 示例-Java 使用Struts Select标记指定选项标签(listValue),java,struts2,ognl,Java,Struts2,Ognl,标签的listValue属性用于指定在选择该选项时应显示给用户的标签 示例- <s:select name="user" list='users' listValue="username" listKey="userId" label="Select an User" /> 在使用OGNL文本枚举列表时,是否可以执行相同的操作 <s:select name="distance" cssClass="textBoxStyle" headerValue="Select Dis
<s:select name="user" list='users' listValue="username" listKey="userId"
label="Select an User" />
在使用OGNL文本枚举列表时,是否可以执行相同的操作
<s:select name="distance" cssClass="textBoxStyle" headerValue="Select Distance"
headerKey="" list="{'1 Km', '2 Km', '3 Km', '5 Km', '8 Km', '12 Km', '20 Km'}" />
我希望显示给用户的1km和整数1,而不是字符串1km,以表格形式提交。 ,而不是像你所编码的那样使用原始数组,你应该考虑从这个视图后面的动作中得到一个映射。在这种情况下,操作中的映射将如下所示:
Map<String, Integer> myMap = new HashMap<>();
myMap.put("1 Km", 1);
...
Map myMap=newhashmap();
myMap.put(“1公里”,1);
...
视图中的代码将是:
<s:select name="distance" cssClass="textBoxStyle" headerValue="Select Distance"
headerKey="" list="myMap" />
地图的键被视为标签,值被视为选项体。您需要使用
listKey
和listValue
属性,并构建一个实际的对象列表
从技术上讲,您可能会执行一些不正常的OGNL,您当然可以通过JavaScript和一个隐藏字段pre-submit来执行,但正如其他答案所述,您最好在Java层而不是视图层执行
我不同意另一个答案,因为对象列表似乎更容易沟通,也更容易构建,但从技术角度看,在这种情况下没有区别,所以更多的是观点问题