我有一个带键值对的地图。我想在下拉列表中显示密钥,并将值发送到服务器以识别所选内容。
我正在使用Struts2。我尝试将地图放在选择标记列表中,但它会在下拉列表中显示值。
答案 0 :(得分:4)
使用listKey
标记的listValue
和<s:select>
属性从对象列表中获取属性。
为了交换地图中的键和值,将{em>值放在listKey
中的值和listValue
中的键。
<s:select list="someMap" listKey="value" listValue="key"/>
答案 1 :(得分:2)
据您所知,Struts2中的下拉列表可以与列表或任何其他集合(如地图)一起使用。它使用OGNL检索选项文本和值的值。
与列表的不同之处在于,地图通过entrySet()
进行转换,并迭代为select Map.Entry
元素。您可以使用此对象来映射下拉列表的键和值。它具有getKey()
和getValue()
方法,可用于OGNL填充下拉列表。第一个用于填充值属性,如果选择了该属性,则提交给操作,第二个填充选项文本。
如果您的下拉列表显示值,那么您将它们映射错误。值应映射为Map
的键,并将文本显示为值。