如何解决在struts2的selectbox中检索值
|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而不是名称,即当我选择“印度”时,我得到的是1而不是印度。
有什么方法可以检索名称而不是ID?
解决方法
必须声明arrayList communityList类型为Country而不是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\" />
, 确保您有countryList的公共获取者。如果仍然不工作,则查看输出中是否打印了6<br/>
,以验证循环本身是否正在运行。还要检查控制台中是否有任何异常。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。