<html:select>生成HTML<select>元素
<html:option>:生成HTML<option>元素
<html:options>:生成一组HTML<options>元素
<html:optionsCollection>生成一组HTML<options>元素。
<html:select>生成HTML<select>元素,表示下拉列表框或多选列表。
在<html:select>标签中可以包含多个<html:option>,<html:options>,<html:optionCollections>元素。<html:select>标签有以下重要属性
size属性:指定每次在网页上显示的可选项的数目。
multipe属性:指定是否支持多项选择,如果设置为true,就表示多选列表,支持多项选择。否则只表示下拉列表。只支持单选操作。默认值false
property属性:与ActionForm Bean中的某个属性对应,这个属性用来存放用户在列表上选中选项的值。在单项选择的情况下,ActionForm Bean中的对应属性对应该列表上选项的值。在单项选择情况下,
ActionForm Bean对应属性应该定义为简单类型(不能为数组),在多项选择情况下,ActionForm Bean中的对应属性应该定义为数组类型,以便存放用户选择的多个选项。
<html:option>
标签生成HTML<option>元素,这个标签被嵌套在<html:select>标签中,代表列表的一个可选项的Label,既现在是在页面上的值。这中值有两个来源。
1.直接指定文本内容
<html:option value="1">Label来源1:直接指定文本内容</html:option>
2.通过Resource Bundle中的内容。
例如:ApplicationResources.properties资源文件中存在如下键值对:a1=happySelect
标签中通过key关联到资源文件,指定要显示内容。
<html:option value="1" key="a1" /> 这样在页面上显示出happySelect
3.通过key,bundle同时指定要显示的内容
bundle与Struts配置文件中<message-resources>元素配置的Resource Bundle的资源文件key匹配
<message-resources parameter="com.struts.happy" key="happyhtml"/>
<html:option value="1" bundle="happyhtml" key="a1" /> 这样在页面上显示出happySelect
把列表的可选项的显示文本存放在Resource Bundle中,而不是直接在JSP文件中指定,有利于实现国际化。
<html:option>元素的value属性指定可选项的实际值。
<html:options>
标签生成一组HTML标签<option>元素。在<html:select>元素中可以包含多个<html:options>元素。
1.使用coolection属性指定存在某个范围中的集合来生成列表项,注意coolection属性指定的集合,该对象的每一个元素为一个Bean。
例如有如下实体类
package com.pojo;
public class Users {
private String userName;
private String userValue;
public Users(){}
public Users(String userName,String userValue)
{
this.userName=userName;
this.userValue=userValue;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserValue() {
return userValue;
}
public void setUserValue(String userValue) {
this.userValue = userValue;
}
}
将实体类实例放入ArrayList列表然后放入reqeust范围内
Users u1=new Users("1","高中");
Users u2=new Users("2","本科");
Users u3=new Users("3","硕士");
Users u4=new Users("4","博士");
ArrayList array=new ArrayList();
array.add(u1);
array.add(u2);
array.add(u3);
array.add(u4);
request.setAttribute("xueli",array);
使用
<html:options>标签生成可选项
<html:select property="xueli" multiple="true" size="3">
<html:options
collection="xueli"
property="userName"
labelProperty="userValue"/>
</html:select>:
collection指定存放在request范围内的集合
property指定<html:option>实际值
labelProperty指定<html:option>显示到页面上的文本。
当使用property属性和labelProperty属性时,会根据属性指定的名称调用相应Bean中的getXXX方法来获得属性值。
生成HTML效果如下
<option value="1">高中</option>
<option value="2">本科</option>
<option value="3">硕士</option>
<option value="4">博士</option>
<html:options>
<html:options collection="collection" labelProperty="displayName" property="value"/>
其中collection为一个集合,一般是个ArrayList,displayName为前台显示的名称,value为后台实际使用的值.
例:<html:options collection="arrayList" labelProperty="name" property="id" />
2.利用name属性指定存放在某个范围中的对象,并有property属性指定该对象的某个属性来生成列表项。
例如
Object[] obj=new Object[]{"高中","本科","硕士","博士"};
request.setAttribute("xueli",array);
<html:options
name="xueli"/>
生成HTML效果如下:
<option value="高中">高中</option>
<option value="本科">本科</option>
<option value="硕士">硕士</option>
<option value="博士">博士</option>
如果
<html:options
name="xueli"
property="userName"
labelProperty="userValue"/>
将报如下异常
javax.servlet.jsp.JspException: No getter method available for property userName for bean under name xueli
3 如果数据是在ActionFormBean中
private String[] addrOpts = { "11", "12", "13" };
private String[] addrLab = { "BJ", "SH", "HK" };
<html:options property="addrOpts " labelProperty="addrLab "/>
如果使用name属性指定集合那么需要使用<html:optionsCollection >标签
<html:optionsCollection>
<html:select>标签中可以嵌套多个<html:optionsCollection>标签
标签与<html:options>标签相似,他通过name属性或property属性指定一个集合对象,该对象中的每一个元素为一个Bean,并且在Bean中分别具有与标签中label属性和value属性指定的值匹配的getXXX方法。
其中label属性用来指定列表项的标签(显示给指定的用户),value属性用来指定实际值(提交给服务器的值)
例如:
ArrayList列表然后放入reqeust范围内
Users u1=new Users("1","高中");
Users u2=new Users("2","本科");
Users u3=new Users("3","硕士");
Users u4=new Users("4","博士");
ArrayList array=new ArrayList();
array.add(u1);
array.add(u2);
array.add(u3);
array.add(u4);
request.setAttribute("xueli",array);
<html:optionsCollection
name="xueli"
value="userName"
label="userValue"/>
</html:select>
如果使用property属性,那么将使用和表单相关联的FormBean中的xueli属性作为指定的集合。
<html:optionsCollection>
<html:optionsCollection property="actionForm.property" label="displayName" value="value"/>
其中property为ActionForm中的一个属性,为一个集合.displayName为前台显示的名称,value为后台实际使用的值.
例:<html:optionsCollection property="listProperty" label="name" value="id" />
-----------------------------------------------------------------------------------------------------------------
意见:
如果要从 数据库去取数据,一般是在 action 里调用 DAO ,把结果存入一个ArrayList作为 request 的一个属性传到页面上; 这时一般用 <html:options .../> 标签.另外,如果数据不从数据库去取,而是代码固定的,则一般把这种放到 ActionForm 里,作为属性在页面上取,这时一般用 <html:optionsCollection ... />
分享到:
相关推荐
<html:option value="1"><bean:write name="dept" property="name"/></html:option> </logic:iterate> </html:select> ``` 这段代码中,`logic:iterate`标签用于遍历`depts`集合,`bean:write`则用于输出集合中每...
### 关于 `<html:select>`、`<html:option>`、`<html:options>` 和 `<html:optionsCollection>` 的详细解析 #### `<html:select>` 标签 `<html:select>` 是一个用于生成 HTML `<select>` 元素的标签。在 Struts 1.x...
- `<html:option>`、`<html:options>`、`<html:optionsCollection>`:配合`<html:select>`使用,定义下拉列表中的选项。 - `<html:submit>`、`<html:button>`:创建提交按钮和普通按钮。 - `<html:reset>`、`...
第三部分,"Struts中的下拉列表标签的使用.doc"讲解了如何使用Struts的`<html:select>`、`<html:option>`和`<html:optionsCollection>`标签来创建下拉列表。这些标签允许开发者动态生成选项,可以绑定到ActionForm的...
- `<html:optionsCollection>`:从集合生成多个选项。 - `<html:file>`:生成文件上传控件。 - `<html:errors>`:显示表单错误信息。 - `<html:messages>`:显示消息信息。 ##### 2.Struts Bean标签库 - `<bean:...
Struts框架中的`html:optionsCollection`标签允许开发者轻松地从Java集合中生成HTML `<option>` 元素,从而构建动态的下拉列表或复选框组。本文档将详细介绍`html:optionsCollection`标签的使用方法,并结合其他相关...
### 精通Struts——Java...通过合理地使用 `<html:form>` 标签及其属性,开发者可以轻松地创建功能丰富且易于维护的表单界面,同时还能确保代码的简洁性和可读性。这对于提高开发效率和减少后期维护成本具有重要意义。
如`<form>`、`<checkbox>`、`<file>`、`<hidden>`、`<multibox>`、`<radio>`、`<select>`、`<option>`、`<options>`、`<optionsCollection>`、`<text>`、`<password>`、`<textarea>`、`<image>`、`<button>`、`...