Re: How to display both selected key and value of s:select
Hi Yasser, Thanks for your useful suggestion! It works with: public class RegisterAction { ... public Country getSelectedCountryObject(String selectedCountry) { for (Country c : countryList) { if (String.valueOf(c.getCountryId()).equals(selectedCountry)) return c; } return new Country(0, ""); } ... } On Mon, Dec 24, 2018 at 3:00 AM Yasser Zamani wrote: > Hi Albert, > > The simplest method can be something like this: > > public class RegisterAction { > ... > public Country getSelectedCountryObject() { > foreach (c in countryList) if(c.countryId==selectedCountry) return c; > } > ... > } > > > > Thanks for using Struts. > > Kind Regards. > > >-Original Message- > >From: albert kao > >Sent: Saturday, December 22, 2018 6:39 PM > >To: Struts Users Mailing List > >Subject: How to display both selected key and value of s:select > > > >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 countryList; > > > >public RegisterAction() { > >countryList = new ArrayList(); > >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 > > > > > > >listValue="countryName" > >value="selectedCountry" > >headerKey="0" headerValue="Country" > >label="Select a country" /> > > > > > > > > > > > >registerResult.jsp > >Country: selectedCountry: > > CountryListAll: >value="getCountryList()" /> CountryListAll2: >value="countryList" /> CountryList: >value="getCountryList().get(country)" /> CountryList.get >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 >
RE: How to display both selected key and value of s:select
Hi Albert, The simplest method can be something like this: public class RegisterAction { ... public Country getSelectedCountryObject() { foreach (c in countryList) if(c.countryId==selectedCountry) return c; } ... } Thanks for using Struts. Kind Regards. >-Original Message- >From: albert kao >Sent: Saturday, December 22, 2018 6:39 PM >To: Struts Users Mailing List >Subject: How to display both selected key and value of s:select > >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 countryList; > >public RegisterAction() { >countryList = new ArrayList(); >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 > > >listValue="countryName" >value="selectedCountry" >headerKey="0" headerValue="Country" >label="Select a country" /> > > > > > >registerResult.jsp >Country: selectedCountry: > CountryListAll: value="getCountryList()" /> CountryListAll2: value="countryList" /> CountryList: value="getCountryList().get(country)" /> CountryList.get 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
How to display both selected key and value of s:select
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 countryList; public RegisterAction() { countryList = new ArrayList(); 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 registerResult.jsp Country: selectedCountry: CountryListAll: CountryListAll2: CountryList: CountryList.get 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