如何在struts 2中选择显示不同的值

时间:2010-05-21 09:00:20

标签: select struts2

我想知道如何在struts 2中显示不同的值。 例如:我想将Jan,Feb作为值分别应该通过1,2的月份。

如果有人意识到这一点,请告诉我 谢谢。

1 个答案:

答案 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类至少(假设)有idusername字段,则必须指定用于传递值的字段以及用于在select中显示的字段。这是通过select标记的listKeylistValue属性完成的:

 <s:select label="User"
        name="users"
        headerKey="-1" headerValue="Select User"
        list="users"
        listKey="id"
        listValue="username"
        value="selectedUser"
        required="true"
 />