I am having a Struts2 app where I am using a dropdown. I populated this dropdown with userId and userName from Users bean as below
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;
}
}
The Users bean is as Given Below
Users.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;
}
}
I wrote a Code in JSP using Struts2 tag lib to Iterate through the List so that the drop down gets populated
<s:select label="UserList" list="arrUserDetails" name="yourSearchEngine" />
But it is displaying memory location in drop down rather than UserName for Option and UserId as Value
Expected Output
<select name="">
<option value="101">User1</option>
<option value="102">User2</option>
<option value="103">User3</option>
</select>
Thanks for those who tried to help me by posting reply. I finally did it by doing Following Changes to the Code
1.I should create a New Object before adding to List otherwise its going to Display User3 for all the Three Values
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 Code
<s:select key="User List" list="arrUserDetails" listKey="userId" listValue="userName" />
Thank you very much