I want to display both selected key and value of s:select.
e.g. for the following codes, after I select
key="2", value="Canada"
and press the submit button.
Only the key "Country: 2" is displayed in the registerResult.jsp as desired.
How to make the value "Canada" to display also in the browser?

public class RegisterAction extends ActionSupport {
private String country, selectedCountry;
private ArrayList<Country> countryList;

public RegisterAction() {
countryList = new ArrayList<Country>();
countryList.add(new Country(1, "India"));
countryList.add(new Country(2, "Canada"));
countryList.add(new Country(3, "US"));
return;
}
}

public class Country {
private int countryId;
private String countryName;
public Country(int countryId, String countryName)
{
this.countryId = countryId;
this.countryName = countryName;
}
public int getCountryId() {
return countryId;
}
public void setCountryId(int countryId) {
this.countryId = countryId;
}
public String getCountryName() {
return countryName;
}
public void setCountryName(String countryName) {
this.countryName = countryName;
}
}

register.jsp
<s:form action="register">

<s:select key="country" list="countryList" listKey="countryId"
listValue="countryName"
value="selectedCountry"
headerKey="0" headerValue="Country"
label="Select a country" />

<s:submit />
</s:form>


registerResult.jsp
<b>Country:</b> <s:property value="country" />
<br>selectedCountry:</b> <s:property value="selectedCountry" />
<b>CountryListAll:</b> <s:property value="getCountryList()" />
<b>CountryListAll2:</b> <s:property value="countryList" />
<b>CountryList:</b> <s:property value="getCountryList().get(country)" />
<br>CountryList.get <s:property value="countryList.get(country)" />


http://localhost:8080/Struts2Example/register.action
Country: 2
selectedCountry: CountryListAll: [com.test.common.Country@32cdbdf6,
com.test.common.Country@6cbe3d89, com.test.common.Country@7abf043f]
CountryListAll2: [com.test.common.Country@32cdbdf6,
com.test.common.Country@6cbe3d89, com.test.common.Country@7abf043f]
CountryList: com.test.common.Country@7abf043f
CountryList.get com.test.common.Country@7abf043f

Reply via email to