位置:首頁 > Java技術 > Struts2教學 > Struts2單選預選按鈕值

Struts2單選預選按鈕值

下麵是幾個Struts2的例子來說明如何通過List, OGNL 和對象生成一個單選按鈕默認值(預先選擇)。

1. 列表 - List

在Java代碼中創建一個列表返回單選按鈕的值。

//...
	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";
	}
	//...

在結果頁麵中,<s:radio>標簽, list=”genders”將調用 getGenders()方法返回列表單選按鈕的鍵和值。以及 value=”defaultGenderValue” 會調用 getDefaultGenderValue() 方法來 預先選擇“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>

2. OGNL

在結果頁麵中,通過創建OGNL表達式單選按鈕,並預先選擇“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>

3. Object

在Java代碼中,創建語言對象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";
	}
	//...

在結果頁麵中,<s:radio> 標簽,list=”languages” 會調用 getLanguages()方法返回單選按鈕鍵和值的列表。  listKey=”languageCode” 表示語言的 languageCode屬性為單選按鈕的鍵; listValue=”languageDisplay” 表示語言的languageDisplay屬性為單選按鈕的值。最後 value=”defaultLanguageValue” 會調用  getDefaultLanguageValue() 方法預先選擇“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>

參考

  1. http://struts.apache.org/2.0.11.2/docs/radio.html
  2. http://struts.apache.org/2.1.8.1/docs/struts-2-form-tags.html