我想知道如何在struts 2中显示不同的值。 例如:我想将Jan,Feb作为值分别应该通过1,2的月份。
如果有人意识到这一点,请告诉我 谢谢。
答案 0 :(得分:3)
请参阅以下示例(来自Struts 2.1.8 API文档):
<s:select label="Months"
name="months"
headerKey="-1" headerValue="Select Month"
list="#{'01':'Jan', '02':'Feb', [...]}"
value="selectedMonth"
required="true"
/>
list属性包含一个映射,其中键是将要发送的值,值是将显示的值。
当然,几个月是静态的,但您可以使用域对象列表或您需要的任何bean。在这种情况下,应该存储列表,通常作为操作类的字段。然后你将参考列表或地图:
<s:select label="User"
name="users"
headerKey="-1" headerValue="Select User"
list="users"
value="selectedUser"
required="true"
/>
在这种情况下,您的操作将包含一个包含用户名及其ID的地图以及一个获取者:getUsers()
。
如果您的操作的getUsers()方法返回User对象列表,并且User类至少(假设)有id
和username
字段,则必须指定用于传递值的字段以及用于在select中显示的字段。这是通过select标记的listKey
和listValue
属性完成的:
<s:select label="User"
name="users"
headerKey="-1" headerValue="Select User"
list="users"
listKey="id"
listValue="username"
value="selectedUser"
required="true"
/>