下面是几个struts2的例子来说明如何通过list, ognl 和对象生成一个单选按钮默认值(预先选择)。
在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>
在结果页面中,通过创建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>
在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>