我有一张带有键值对的地图。我想在下拉列表中显示键,并将值发送到服务器以识别所选内容。
我使用的是Struts2。我尝试将
Map
放入 <s:select>
标签 list
中,但它显示了下拉列表中的值。
使用
listKey
标签的 listValue
和 <s:select>
属性从对象列表中获取属性。
为了交换映射中的键和值,请将 value 放入
listKey
并将 key 放入 listValue
。
<s:select list="someMap" listKey="value" listValue="key"/>
据您所知,Struts 2 中的下拉菜单可以与
List
或任何其他集合(如 Map
)一起使用。它使用 OGNL 检索选项文本和值的值。
与
List
的区别在于Map
是通过entrySet()
转换并迭代得到选择选项的Map.Entry
元素。
您可以使用此对象为下拉列表映射
key
和 value
。它有 getKey()
和 getValue()
方法,对于 OGNL 填充下拉列表很有用。第一个用于填充 value
属性,如果选择该属性,则将其提交给操作,第二个用于填充选项的文本。
如果您的下拉列表显示值,则说明您映射了错误的值。这些值应映射为
Map
的键,并将文本显示为值。