int orgLevel = frm.getOrgLevel;
Map orgTypes = new LinkedHashMap();
if(orgLevel == 0) {
orgTypes.put("1", "下属一级地区");
orgTypes.put("2", "下属二级地区");
orgTypes.put("3", "下属三级地区");
}else if(orgLevel == 1){
orgTypes.put("1", "下属一级地区");
orgTypes.put("2", "下属二级地区");
}else if(orgLevel == 2) {
orgTypes.put("1", "下属一级地区");
}
request.setAttribute("orgTypes", orgTypes);
显示下拉列表框
<html:select property="orgType" οnchange="changeOrgType();return false;">
<html:options collection="orgTypes" property="key" labelProperty="value" />
</html:select>
以下转载:
<html:select>生成HTML<select>元素 <html:option>:生成HTML<option>元素 <html:options>:生成一组HTML<options>元素 <html:optionsCollection>生成一组HTML<options>元素。
在<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.直接指定文本内容 2.通过Resource Bundle中的内容。 例如:ApplicationResources.properties资源文件中存在如下键值对:a1=happySelect 标签中通过key关联到资源文件,指定要显示内容。 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; } 将实体类实例放入ArrayList列表然后放入reqeust范围内 使用 <html:select property="xueli" multiple="true" size="3"> collection指定存放在request范围内的集合 property指定<html:option>实际值 当使用property属性和labelProperty属性时,会根据属性指定的名称调用相应Bean中的getXXX方法来获得属性值。 生成HTML效果如下 <option value="1">高中</option>
<html:options> 例如
<option value="高中">高中</option> 如果 将报如下异常 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属性用来指定实际值(提交给服务器的值) 例如: <html:optionsCollection 如果使用property属性,那么将使用和表单相关联的FormBean中的xueli属性作为指定的集合。
<html:optionsCollection>
----------------------------------------------------------------------------------------------------------------- 意见: 如果要从 数据库去取数据,一般是在 action 里调用 DAO ,把结果存入一个ArrayList作为 request 的一个属性传到页面上; 这时一般用 <html:options .../> 标签.另外,如果数据不从数据库去取,而是代码固定的,则一般把这种放到 ActionForm 里,作为属性在页面上取,这时一般用 <html:optionsCollection ... />
|