1

我有一个使用下拉列表的 Struts2 应用程序。我用来自用户 bean 的 userId 和 userName 填充了这个下拉列表,如下所示

public class DropDown extends ActionSupport{
    private List arrUserDetails = new ArrayList<Users>();

    public DropDown()
    {
        Users objUsers = new Users();
        objUsers.setUserId("101");
        objUsers.setUserName("User1");

        arrUserDetails.add(objUsers);

        objUsers.setUserId("102");
        objUsers.setUserName("User2");

        arrUserDetails.add(objUsers);

        objUsers.setUserId("103");
        objUsers.setUserName("User3");

        arrUserDetails.add(objUsers);
    }

    public String execute(){
        return SUCCESS;
    }

    public List getArrUserDetails() {
        return arrUserDetails;
    }


    public void setArrUserDetails(List arrUserDetails) {
        this.arrUserDetails = arrUserDetails;
    }
}

用户 bean 如下所示

用户.java

public class Users
{
    private String userId;
    private String userName;

    public String getUserId() {
        return userId;
    }
    public void setUserId(String userId) {
        this.userId = userId;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
}

我使用 Struts2 标记库在 JSP 中编写了一个代码来迭代列表,以便填充下拉列表

<s:select label="UserList" list="arrUserDetails" name="yourSearchEngine" />

但它在下拉列表中显示内存位置,而不是 Option 的 UserName 和 UserId 作为 Value

预期产出

<select name=""> 
  <option value="101">User1</option>
  <option value="102">User2</option>
  <option value="103">User3</option>
</select>
4

2 回答 2

3

我认为您还需要为标签提供 listKey 和 ListValue 属性。

listKey = 要从中获取字段值的列表对象的属性

listValue = 要从中获取标题的列表对象的属性

所以,在你的情况下,listKey = "userId"listValue = "userName"

于 2013-06-21T05:41:04.423 回答
0

感谢那些试图通过发布回复来帮助我的人。我终于通过对代码进行以下更改来做到这一点

1.我应该在添加到列表之前创建一个新对象,否则它将显示所有三个值的 User3

    public DropDown()
    {
        Users objUsers1 = new Users();
        objUsers1.setUserId("101");
        objUsers1.setUserName("User1");

        arrUserDetails.add(objUsers1);

        Users objUsers2 = new Users();
        objUsers2.setUserId("102");
        objUsers2.setUserName("User2");

        arrUserDetails.add(objUsers2);

        Users objUsers3 = new Users();
        objUsers3.setUserId("103");
        objUsers3.setUserName("User3");

        arrUserDetails.add(objUsers3);
    }

2.JSP代码

<s:select key="User List" list="arrUserDetails" listKey="userId" listValue="userName" />

非常感谢

于 2013-06-21T05:40:32.607 回答