package vaannila;
import java.util.ArrayList;
import com.opensymphony.xwork2.ActionSupport;
public class RegisterAction extends ActionSupport {
private String userName;
private String password;
private String gender;
private String about;
private String country;
private ArrayList<Country> countryList;
private String[] community;
private ArrayList<String> communityList;
private Boolean mailingList;
public String populate() {
countryList = new ArrayList<Country>();
countryList.add(new Country(1, "India"));
countryList.add(new Country(2, "USA"));
countryList.add(new Country(3, "France"));
communityList = new ArrayList<String>();
communityList.add("Java");
communityList.add(".Net");
communityList.add("SOA");
community = new String[]{"Java",".Net"};
mailingList = true;
return "populate";
}
@Override
public String execute() {
return SUCCESS;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getAbout() {
return about;
}
public void setAbout(String about) {
this.about = about;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public ArrayList<Country> getCountryList() {
return countryList;
}
public void setCountryList(ArrayList<Country> countryList) {
this.countryList = countryList;
}
public String[] getCommunity() {
return community;
}
public void setCommunity(String[] community) {
this.community = community;
}
public ArrayList<String> getCommunityList() {
return communityList;
}
public void setCommunityList(ArrayList<String> communityList) {
this.communityList = communityList;
}
public Boolean getMailingList() {
return mailingList;
}
public void setMailingList(Boolean mailingList) {
this.mailingList = mailingList;
}
}
的index.jsp
<s:select name="country" list="countryList" listKey="countryId"
listValue="countryName" headerKey="0" headerValue="Country"
label="Select a country" />
的success.jsp
Country: <s:property value="country" /><br>
当我在文本框中选择一个值时,它正在检索id而不是名称,即当我选择india时,我得到1而不是印度。
有没有办法检索名称而不是id?
答案 0 :(得分:1)
必须声明arrayList communityList的类型为Country not String
private ArrayList<Country> communityList;
确保在动作类
中有 getter方法然后在jsp
中使用以下语法 <s:iterator value="countryList"> <!-- here myList contains the list of objects -
<s:property value="countryName" /><br/>
<s:property value="countryId" /><br/>
</s:iterator>
根据您编辑的问题,您需要使用countryName作为listKey
<s:select name="country" list="countryList" listKey="countryName" listValue="countryName" headerKey="0" headerValue="Country" label="Select country" />
答案 1 :(得分:0)
确保您拥有countryList的公共getter。如果它仍然无法工作,那么查看输出中是否打印了6 <br/>
以验证循环本身是否正在运行。还要检查控制台中的任何异常。