下面是幾個Struts2的例子來說明如何通過List, OGNL 和對象生成一個單選按鈕默認值(預(yù)先選擇)。
在Java代碼中創(chuàng)建一個列表返回單選按鈕的值。
//... List<String> genders = new ArrayList<String>(); genders.add("male"); genders.add("female"); genders.add("unknown"); //... public List<String> getGenders() { return genders; } public String getDefaultGenderValue(){ return "unknown"; } //...
在結(jié)果頁面中,<s:radio>標(biāo)簽, list=”genders”將調(diào)用 getGenders()方法返回列表單選按鈕的鍵和值。以及 value=”defaultGenderValue” 會調(diào)用 getDefaultGenderValue() 方法來 預(yù)先選擇“unknown”值作為單選按鈕的默認值。
<s:radio label="Gender" name="yourGender" list="genders" value="defaultGenderValue" />
它會生成以下HTML代碼...
<input type="radio" name="yourGender" id="resultAction_yourGendermale" value="male"/> <label for="resultAction_yourGendermale">male</label> <input type="radio" name="yourGender" id="resultAction_yourGenderfemale" value="female"/> <label for="resultAction_yourGenderfemale">female</label> <input type="radio" name="yourGender" id="resultAction_yourGenderunknown" checked="checked" value="unknown"/> <label for="resultAction_yourGenderunknown">unknown</label>
在結(jié)果頁面中,通過創(chuàng)建OGNL表達式單選按鈕,并預(yù)先選擇“2”為默認值。
<s:radio label="Answer" name="yourAnswer" list="#{'1':'Yes','2':'No'}" value="2" />
它會生成以下HTML代碼...
<input type="radio" name="yourAnswer" id="resultAction_yourAnswer1" value="1"/> <label for="resultAction_yourAnswer1">Yes</label> <input type="radio" name="yourAnswer" id="resultAction_yourAnswer2" checked="checked" value="2"/> <label for="resultAction_yourAnswer2">No</label>
在Java代碼中,創(chuàng)建語言對象languageCode和languageDisplay的屬性。
//... public class Language{ private String languageCode; private String languageDisplay; //getter and setter methods }
//... List<Language> languages = new ArrayList<Language>(); languages.add( new Language("EN", "English") ); languages.add( new Language("FR", "France") ); languages.add( new Language("CN_ZH", "Chinese") ); languages.add( new Language("DE", "German") ); //... public List<Language> getLanguages() { return languages; } public String getDefaultLanguageValue(){ return "CN_ZH"; } //...
在結(jié)果頁面中,<s:radio> 標(biāo)簽,list=”languages” 會調(diào)用 getLanguages()方法返回單選按鈕鍵和值的列表。 listKey=”languageCode” 表示語言的 languageCode屬性為單選按鈕的鍵; listValue=”languageDisplay” 表示語言的languageDisplay屬性為單選按鈕的值。最后 value=”defaultLanguageValue” 會調(diào)用 getDefaultLanguageValue() 方法預(yù)先選擇“CN_ZH” 作為單選按鈕的默認值。
<s:radio label="Gender" name="yourLanguage" list="languages" listKey="languageCode" listValue="languageDisplay" value="defaultLanguageValue" />
它會生成以下HTML代碼...
<input type="radio" name="yourLanguage" id="resultAction_yourLanguageEN" value="EN"/> <label for="resultAction_yourLanguageEN">English</label> <input type="radio" name="yourLanguage" id="resultAction_yourLanguageFR" value="FR"/> <label for="resultAction_yourLanguageFR">France</label> <input type="radio" name="yourLanguage" id="resultAction_yourLanguageCN_ZH" checked="checked" value="CN_ZH"/> <label for="resultAction_yourLanguageCN_ZH">Chinese</label> <input type="radio" name="yourLanguage" id="resultAction_yourLanguageDE" value="DE"/> <label for="resultAction_yourLanguageDE">German</label>