`

Struts标签<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 ... />
分享到:
评论

相关推荐

    jsp中htmlselect标签的用法

    `html:select`标签在JSP和Struts框架中提供了方便的下拉列表操作。通过与ActionForm对象和集合对象配合,我们可以轻松地构建动态的、数据驱动的下拉选择列表,实现数据的双向绑定。同时,还可以通过`html:option`和`...

    JSP Struts之HTML标签库详解

    它们包括`&lt;html:text&gt;`、`&lt;html:password&gt;`、`&lt;html:submit&gt;`等,这些标签能够与Struts框架配合,方便地绑定到JavaBeans的属性,便于数据的提交和验证。 3. **错误和信息展示标签**:`&lt;html:errors&gt;`标签用于显示...

    struts html标签例子

    7. `&lt;html:select&gt;`、`&lt;html:option&gt;`和`&lt;html:optionsCollection&gt;`:用于创建下拉选择框。`&lt;html:select&gt;`定义了选择框,`&lt;html:option&gt;`用于添加单个选项,而`&lt;html:optionsCollection&gt;`则可以从集合或Map中动态...

    htmlSelect.txt

    ### 关于 `&lt;html:select&gt;`、`&lt;html:option&gt;`、`&lt;html:options&gt;` 和 `&lt;html:optionsCollection&gt;` 的详细解析 #### `&lt;html:select&gt;` 标签 `&lt;html:select&gt;` 是一个用于生成 HTML `&lt;select&gt;` 元素的标签。在 Struts 1.x...

    Struts提供的和Form相关的标签 .rar

    6. `&lt;html:select&gt;`, `&lt;html:option&gt;`和`&lt;html:optionsCollection&gt;`标签:用于创建下拉选择框。例如: ```jsp &lt;html:select property="country"&gt; &lt;html:option value=""&gt;Select a country&lt;/html:option&gt; ...

    Struts标签学习笔记.doc

    此外,Struts标签库还包括`&lt;html:option&gt;`和`&lt;html:optionsCollection&gt;`等标签,它们分别用于在`&lt;html:select&gt;`中定义选项,以及从集合或列表中动态生成选项。 总结来说,Struts标签极大地简化了JSP页面的编写,...

    Struts标签文档

    5. `&lt;html:select&gt;`、`&lt;html:option&gt;`和`&lt;html:optionsCollection&gt;`:这些标签用于创建下拉选择框。`&lt;html:select&gt;`定义选择框,`&lt;html:option&gt;`添加单个选项,而`&lt;html:optionsCollection&gt;`则可以从ActionForm的...

    Struts 中 Html 标签库 的用法(第二组标签,与Form相关的标签 ).rar

    6. `&lt;html:select&gt;`、`&lt;html:option&gt;`和`&lt;html:optionsCollection&gt;`标签:`&lt;html:select&gt;`创建下拉选择框`&lt;select&gt;`,`&lt;html:option&gt;`定义选择项,`&lt;html:optionsCollection&gt;`则可以方便地从ActionForm的集合属性中...

    Struts标签库学习.rar

    第三部分,"Struts中的下拉列表标签的使用.doc"讲解了如何使用Struts的`&lt;html:select&gt;`、`&lt;html:option&gt;`和`&lt;html:optionsCollection&gt;`标签来创建下拉列表。这些标签允许开发者动态生成选项,可以绑定到ActionForm的...

    struts标签库使用

    - `&lt;html:select&gt;`,`&lt;html:option&gt;`和`&lt;html:optionsCollection&gt;`:用于创建下拉列表。 4. **数据校验** Struts标签库还可以与Validator框架结合,进行客户端和服务器端的数据校验。例如,可以使用`&lt;html:form&gt;`...

    html标题库 详细和各种功能

    - `&lt;html:option&gt;`、`&lt;html:options&gt;`、`&lt;html:optionsCollection&gt;`:配合`&lt;html:select&gt;`使用,定义下拉列表中的选项。 - `&lt;html:submit&gt;`、`&lt;html:button&gt;`:创建提交按钮和普通按钮。 - `&lt;html:reset&gt;`、`...

    struts标签-HTML标签笔记

    ##### 2.8 `&lt;html:optionsCollection&gt;` 标签 - **功能**:用于从集合中动态填充下拉列表。 - **示例**: ```xml &lt;html:select property="city"&gt; &lt;html:optionsCollection value="cities" label="name" value="id...

    Struts标签库.chm是一个不错的东西

    - `&lt;html:select&gt;`、`&lt;html:option&gt;` 和 `&lt;html:optionsCollection&gt;`:用于创建下拉列表。 使用Struts标签库的好处在于: - **代码复用**:标签可以多次重复使用,减少代码量,提高开发效率。 - **增强可读性**:...

    struts1.x_Tags

    - `&lt;html:select&gt;`、`&lt;html:option&gt;` 和 `&lt;html:optionsCollection&gt;`: 用于创建下拉列表,可以绑定到ActionForm的属性。 3. **其他标签库**: - **bean标签库**: 用于操作JavaBean对象,如`&lt;bean:define&gt;`、`&lt;bean...

    jdon核心思想

    Struts标签库提供了多种表单元素的标签,例如`&lt;html:form&gt;`、`&lt;html:text&gt;`、`&lt;html:hidden&gt;`、`&lt;html:submit&gt;`等,这些标签可以方便地创建和管理表单数据。 - **`&lt;html:form&gt;`**: 用于定义表单的结构。 - **`...

    struts<optionsCollection>应用文档+实例

    `&lt;optionsCollection&gt;`是Struts2框架中`&lt;s:select&gt;`或`&lt;s:checkboxlist&gt;`标签的一部分,用于生成HTML的`&lt;option&gt;`元素。其主要属性包括: 1. `list`:这是必须的属性,用于指定包含选项的数据源。可以是一个Action...

    StructTib.doc

    6. **`&lt;html:select&gt;`、`&lt;html:option&gt;`和`&lt;html:optionsCollection&gt;`标签**:用于创建下拉选择列表,`&lt;html:option&gt;`用于定义选项,`&lt;html:optionsCollection&gt;`则可以从数据库或其他集合中动态生成选项。...

    学习struts很好的文档

    - **配置Struts标签库**:使用&lt;taglib&gt;元素引入Struts提供的标签库。 ##### 2.配置struts-config.xml - `&lt;struts-config&gt;`:根元素,包含其他所有配置项。 - `&lt;data-sources&gt;`:定义数据库连接池信息。 - `&lt;form-...

    Struts开发技术

    本文详细介绍了Struts框架中的一些核心概念和技术点,包括FormBean的数据传递、数组和集合的迭代展示、动态生成带有参数的HTML链接、使用`&lt;html:select&gt;`和`&lt;html:multibox&gt;`创建交互式控件等。通过这些技术点的学习...

    strus标签总结及例子

    `&lt;html:select&gt;`定义选择框,`&lt;html:option&gt;`定义选项,而`&lt;html:optionsCollection&gt;`则可以基于集合动态生成选项。 9. `html:checkbox`和`html:radio`标签:分别用于创建复选框和单选按钮。 10. `tiles`标签:...

Global site tag (gtag.js) - Google Analytics