`

<html:select>,<html:option>,<html:optionsCollection>和<html:options>的区别

阅读更多
<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 ... />

分享到:
评论

相关推荐

    htmlSelect.txt

    &lt;html:select&gt;生成HTML&lt;select&gt;元素 &lt;html:option&gt;:生成HTML&lt;option&gt;元素 &lt;html:options&gt;:生成一组HTML&lt;options&gt;元素 &lt;html:optionsCollection&gt;生成一组HTML&lt;options&gt;元素

    JSP Struts之HTML标签库详解

    JSP StrutsHTML标签库详解,我觉得挺好的,希望能给大家带来帮助

    struts<optionsCollection>应用文档+实例

    struts&lt;optionsCollection&gt;应用文档+实例,我相信会给大家到来帮助

    html optionsCollection标签使用

    本文档主要是描述html optionsCollection标签的使用,我相信它一定对大家的学习有帮助。

    22_PHP_基于KPI的医疗废弃物管理系统-源码.zip

    提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

    Python教程-快速入门基础必看课程09-文件处理

    该视频主要讲述了Python中文件的读写操作和pandas库中的subt函数来处理CSV文件。 在Python中,文件的读写操作需要使用open函数打开文件,并指定路径和模式。读取文件时,可以使用f.read()方法读取内容,并使用f.close()方法关闭文件。写入文件时,可以使用f.write()方法写入内容,并使用f.close()方法关闭文件。视频还介绍了如何在文件中进行换行操作,以及如何将文件中的内容进行读取和写入。 此外,视频还强调了在进行文件操作时需要注意的一些细节和技巧,例如文件的编码格式、内存不足问题、文件的访问权限、写入速度变慢问题等。视频还介绍了如何使用with语句来自动关闭文件,以及如何使用os模块中的函数来处理文件和文件夹。 另外,视频还讲述了如何使用pandas库中的subt函数来处理CSV文件。通过使用read函数将CSV文件读入,然后使用subt函数按照行和列进行划分。在划分时,可以根据需要选择不同的分隔符,如逗号、制表符等。通过subt函数可以将CSV文件切分成多个元素,然后将这些元素存储在一个list中。视频还展示了如何将这个list进行组合,

    《2023年度TikTok电商行业趋势白皮书》.zip

    《2023年度TikTok电商行业趋势白皮书》.zip

    网络攻防课程seed-labs实验-DNS_Attacks.zip

    网络攻防课程seed-labs实验-DNS_Attacks.zip

    sql查询数据库表结构(sql server适用)

    1. sql 语句查询sql server 数据库表结构 2. sql 语句查询sql server 数据库临时表结构 3. 可自由扩展字段,主要提供一个查询思路 4. 包括表名,列名,字段类型、主键表示、字段说明等。

    ASP.NETC#实验室预约管理系统.zip

    ASP.NET实验室预约管理系统源码 该系统的系统角色有三个:学生、教师、管理员,系统功能介绍如下: 学生功能 学生主要是四个功能。注册功能、查询功能、预约功能、学生资料管理功能。 (1)注册功能。学生进入登录界面后,如果没有注册,要先注册。注册的用户名是学生的学号。注册后才可以登录,学生在此功能里还能够修改、删除个人资料。 (2)查询功能。学生在进入主界面后,能够对想预约的课程查询或教师查询。由于老师可能教多个课程,所以有个二级选择目录。 (3)预约功能。当学生查询好信息后,就要对想要预约的实验开始预约。 (4)学生资料管理功能。学生在注册后,可以通过登录,修改自己的个人信息。 教师功能 教师也有四个功能。注册功能、查询功能、预约功能,教师的资料管理功能。只是教师和学生所使用功能的方式不一样。 (1)注册功能。老师进入登录界面后,如果没有账号,也要先注册账号,同时可以对自己的资料进行修改、删除、填加。 (2)查询功能。教师的查询功能主要是对实验室类别、项目、预约情况的查询。类别查询主要是查询实验室房间的信息;项目查询主要是查看能实验该项目的房间信息;预约查询主要是对实验室预约状况的查

    html实现儿童节庆祝项目源码

    java结合html实现儿童节庆祝代码

    操作系统课程实现Shell.zip

    操作系统课程实现Shell.zip

    一带一路下的交通发展(16组).pptx

    一带一路下的交通发展(16组).pptx

    光伏特性曲线(光照强度/温度)构建U-P以及U-I曲线

    通过MATLAB/simulink模块,构建光伏特性曲线(光照强度/温度)构建U-P以及U-I曲线,可以通过simulink模型设置光伏发电板串并联数量、光伏参数(开路电压,开路电流、最大功率点电压、最大功率点电流以及最大功率)、温度系数等,可以得到完美的U-P以及U-I曲线,通过m文件能够修改坐标轴的x轴及y轴坐标的范围。 模型使用方法,首先在MATLAB中添加文件路径,然后在MATLAB工作区中打开m文件以及slx文件,然后在MATLAB中直接运行m文件,然后回弹出相应的U-P以及U-I曲线,通过m文件能够修改光照强度的变化范围、温度的变化范围,总共可以得到光照强度以及温度共四个U-P以及U-I曲线图。

    Python爬取百度贴吧数据.zip

    python爬虫案例

    43_超市管理系统-源码.zip

    提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

    农业农村部特聘审计员推荐表.doc

    农业农村部特聘审计员推荐表.doc

    132_基于Java的动物拯救游戏-源码.zip

    提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

    农垦农产品质量追溯系统建设项目验收申请书目录.doc

    农垦农产品质量追溯系统建设项目验收申请书目录.doc

Global site tag (gtag.js) - Google Analytics