`
shift8
  • 浏览: 146618 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

JSP_Struts标签 html:select option基本用法

阅读更多

 

<html:select><html:option><html:options>,<html:optionsCollection>标签使用

<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同时指定要显示的内容

bundleStruts配置文件中<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"/>
其中propertyActionForm中的一个属性,为一个集合.displayName为前台显示的名称,value为后台实际使用的值.
:<html:optionsCollection property="listProperty" label="name" value="id" />

 

-----------------------------------------------------------------------------------------------------------------

意见:

如果要从 数据库去取数据,一般是在 action 里调用 DAO ,把结果存入一个ArrayList作为 request 的一个属性传到页面上; 这时一般用 <html:options .../> 标签.另外,如果数据不从数据库去取,而是代码固定的,则一般把这种放到 ActionForm 里,作为属性在页面上取,这时一般用 <html:optionsCollection ... />

 

 

分享到:
评论
1 楼 mathlpz 2015-01-15  
          

相关推荐

    struts实现二级联动下拉框

    由于时间有限,直接将个人实现的JSP上传至...对于JSP里的html:select及其html:option几乎只用直接拷贝,没什么需要修改的(除了修改页面的EL表达式);如果有不懂的,可以直接联系我;电子邮件:zyyceo@gmail.com; QQ:114948587

    完全免费的Java/jsp开发编辑工具FirstJava2

    对初学者来说,使用方法过于复杂,如果你编译200个java文件,编译速度太慢,需要好长时间. Eclipse和Jbuild编辑辅助方式,显示的内容太多了,眼都看花了. 当你使用FirstJava2你会发现,它速度很快,功能简单,管用,反应敏捷,...

    Java Oracle分页处理

    &lt;%@ include file="Strutstaglibs.jsp" %&gt; &lt;%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %&gt; &lt;html&gt; 分页技术信息显示页面 用户名 密 码 生 日 职 业 性 别 ...

    FirstJava2完全教材

    对初学者来说,使用方法过于复杂,如果你编译200个java文件,编译速度太慢,需要好长时间. Eclipse和Jbuild编辑辅助方式,显示的内容太多了,眼都看花了. 当你使用FirstJava2你会发现,它速度很快,功能简单,管用,反应敏捷,...

    Spring-Reference_zh_CN(Spring中文参考手册)

    select标签 13.9.8. option标签 13.9.9. options标签 13.9.10. textarea标签 13.9.11. hidden标签 13.9.12. errors标签 13.10. 处理异常 13.11. 惯例优先原则(convention over configuration) 13.11.1. 对控制器的...

    Spring中文帮助文档

    option标签 13.9.11. options标签 13.9.12. textarea标签 13.9.13. hidden标签 13.9.14. errors标签 13.10. 处理异常 13.11. 惯例优先原则(convention over configuration) 13.11.1. 对控制器的支持:...

    Spring API

    option标签 13.9.11. options标签 13.9.12. textarea标签 13.9.13. hidden标签 13.9.14. errors标签 13.10. 处理异常 13.11. 惯例优先原则(convention over configuration) 13.11.1. 对控制器的支持:...

    Spring 2.0 开发参考手册

    option标签 13.9.9. options标签 13.9.10. textarea标签 13.9.11. hidden标签 13.9.12. errors标签 13.10. 处理异常 13.11. 惯例优先原则(convention over configuration) 13.11.1. 对控制器的支持: ...

    spring chm文档

    option标签 13.9.9. options标签 13.9.10. textarea标签 13.9.11. hidden标签 13.9.12. errors标签 13.10. 处理异常 13.11. 惯例优先原则(convention over configuration) 13.11.1. 对控制器的支持: ...

    Java学习笔记-个人整理的

    {1.1}基本语法}{17}{section.1.1} {1.2}数字表达方式}{17}{section.1.2} {1.3}补码}{19}{section.1.3} {1.3.1}总结}{23}{subsection.1.3.1} {1.4}数据类型}{23}{section.1.4} {1.4.1}整数与浮点数}{23}{...

Global site tag (gtag.js) - Google Analytics