html:optionsCollection
Struts1中的下拉列表标签的使用
页面中经常用到下拉列表,下面是个人对于STRUTS中标签使用的一点总结:
STRUTS中的下拉选择列表标签必须嵌套在<html:form>标签中,包括:
1.<html:select>
2.<html:option>
3.<html:options>
4.<html:optionsCollection>
使用时嵌套如下:
<html:selectproperty="ationForm.property">
<html:option>或<html:options>或<html:optionsCollection>
</html:select>
其中property为ActionForm中对应的一个属性.
1.<html:option>
<html:optionvalue="value">displayName</html:option>
其中value为实际使用的值(赋值到ActionForm对应的属性中)displayName页面中显示的信息.
例:<html:optionvalue=""></html:option>显示一个空白选择,值为"".
2..<html:options>
<html:optionscollection="collection"labelProperty="displayName"property="value"/>
其中collection为一个集合,一般是个ArrayList,displayName为前台显示的名称,value为后台实际使用的值.
例:<html:optionscollection="arrayList"labelProperty="name"property="id"/>
3..<html:optionsCollection>
<html:optionsCollectionproperty="actionForm.property"label="displayName"value="value"/>
其中property为ActionForm中的一个属性,为一个集合.displayName为前台显示的名称,value为后台实际使用的值.
例:<html:optionsCollectionproperty="listProperty"label="name"value="id"/>
补充一点:如果要从数据库去取数据,一般是在action里调用DAO,把结果存入一个ArrayList作为request的一个属性传到页面上;这时一般用<html:options.../>标签.另外,如果数据不从数据库去取,而是代码固定的,则一般把这种放到ActionForm里,作为属性在页面上取,这时一般用<html:optionsCollection.../>
optionsCollection标签用法:
与options标签一样,optionsCollection标签可以从集合或者是包含集合的对象里获得选项的标签/值对。在这两种情况里,集合或包含集合的对象必须是一个作用域对象,否则定制标签将无法访问它。