Struts2常用标签属性及示例-4
radio标签生成一个或多个radio类型的input元素。这里可以参照checkboxlist的用法。
Attributes
Description
name
对应action中的属性名称,属性的类型即是listKey的值所对应的类型
list
Required,这个属性的值必须为可迭代类型或者是数组类型,比如list,set,array。用以显示所有的选择项。如果list的值为Map,则map的key对应radio的值,map的value对应radio的显示内容
listKey
生成的radio 的input元素的value属性
listValue
生成的radio的input元素的显示内容
Jsp code:
<s:action name="init" id="init" />
<s:radio label="Chose Interest" name="interest" list="#init.listHobby" listKey="hobbyId" listValue="hobbyName" />
在这里通过action标签配置了一个init的action,list属性也不是通过session取的数据,这是prepare数据的另一种方式,即是由jsp调用action来准备数据,而不是前面通过action先准备好数据再跳转到jsp。这要根据实际需求,来决定是用什么方式来准备数据。
Page source code:
<input type="radio" name="interest" id="testTags_interest1" value="1"/><label for="testTags_interest1">Football</label>
<input type="radio" name="interest" id="testTags_interest2" value="2"/><label for="testTags_interest2">Basketball</label>
Prepare action:
因为是通过<action>标签来调用action,如果不通过session中取数据,那么调用的action必须有list的变量并在execute方法中对list赋值:
private List<Hobby> listHobby; //with getter/setter method
public String execute() throws Exception {
List<Hobby> listHobby= new ArrayList<Hobby>();
//deal with listHobby.
return SUCCESS;
/*这里结果跳转是不起作用的,因为通过action标签调用的 action在struts.xml中的result会被忽略,除非标签配置了executeResult属性*/
}
Action class:
用法和checkboxlist一样,只是radio的结果是单值而不是数组,所以要定义一个String或者Long型变量来绑定到页面的radio控件上
private String interest; //with getter/setter method
Result:
Interest的值就是页面上选中的 radio对应的value属性的值
7 select 和 optgroup
select标签相当于用combobox标签的显示结果去掉上面的输入域。optgroup标签嵌入select标签使用,将一个list导入到select的选项集里,进行了选项的分组。
Attributes
Description
name
对应action中的属性名称,属性的类型即是listKey的值所对应的类型
list
Required,这个属性的值必须为可迭代类型或者是数组类型,比如list,set,array,用以显示所有的选择项。如果list的值为Map,则map的key对应option的值,map的value对应option的显示内容
listKey
生成的select 的option元素的value属性,也即是选择某个option后,text field显示的内容
listValue
生成的select的option元素的显示内容
headerKey
设置第一个选项的值
headerValue
设置第一个选项的显示内容
Jsp code:
<s:select label="My Selection" name="mySelection" value="%{'POPEYE'}"
list="%{#{'SUPERMAN':'Superman','SPIDERMAN':'spiderman'}}">
<s:optgroup label="Adult" list="%{#{'SOUTH_PARK':'South Park'}}" />
<s:optgroup label="Japanese"
list="%{#{'POKEMON':'pokemon','DIGIMON':'digimon'}}" />
</s:select>
Page source code:
<select name="mySelection" id="testTags_mySelection">
<option value="SUPERMAN">Superman</option>
<option value="SPIDERMAN">spiderman</option>
<optgroup label="Adult"><option value="SOUTH_PARK">South Park</option></optgroup>
<optgroup
label="Japanese">
<option value="POKEMON">pokemon</option>
<option value="DIGIMON">digimon</option>
<option value="SAILORMOON">Sailormoon</option>
</optgroup>
</select>
Prepare action:
参照comobobox的prepare action:
Action class:
private String mySelection; //with getter/setter method
Result: