Struts 中的下拉选择列表标签必须嵌套在<html:form>标签中,<html:select>标签的属性:
size 指定每次在网页上显示的可选项的数目。
multipe 指定是否支持多项选择,如果设置为true,则支持多项选择。否则只支持单选,默认值false。
property 与ActionForm中的某个属性对应,这个属性用来存放用户在列表上选中选项的值。在单项选择情况下,ActionForm对应属性应该定义为简单类型(不能为数组);在多项选择情况下,ActionForm中的对应属性应该定义为数组类型,以便存放用户选择的多个选项。
value 指定下拉列表默认选中的项。
一般使用方法:
<html:select property="XXX">
<html:option>或<html:options>或<html:optionsCollection>
</html:select>
在<html:select>标签中可以包含多个<html:option>,<html:options>,<html:optionCollections>元素。
一、<html:option>标签生成HTML<option>元素,其value属性指定可选项的实际值。
1.直接指定
<html:option value="实际值">显示内容</html:option>
2.读取资源文件
例如:ApplicationResources.properties资源文件中存在如下键值对:a1=happySelect
标签中通过key关联到资源文件,指定要显示内容。
<html:option value="实际值" key="a1" /> 这样在页面上显示出happySelect
3.通过key、bundle同时指定要显示的内容
bundle与Struts配置文件中<message-resources>元素配置的Resource Bundle的资源文件key匹配
<message-resources parameter="com.struts.happy" key="happyhtml"/>
<html:option value="实际值" bundle="happyhtml" key="a1" /> 这样在页面上显示出happySelect
把列表的可选项的显示文本存放在资源文件中,而不是直接在JSP文件中指定,有利于实现国际化。
二、<html:options>标签生成一组HTML标签<option>元素
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列表然后放入request范围内
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>
实现以上效果可以使用Struts框架特有的类LabelValueBean类,这样就省去了自己定义Bean的麻烦了:
ArrayList array=new ArrayList();
array.add(new LabelValueBean("1","高中"));
array.add(new LabelValueBean("2","本科"));
array.add(new LabelValueBean("3","硕士"));
array.add(new LabelValueBean("4","博士"));
request.setAttribute("xueli",array);
<html:select property="xueli" multiple="true" size="3">
<html:options
collection="xueli"
property="value"
labelProperty="label"/>
</html:select>
另,未指定collection属性方式的举例如下:
<html:select name="userForm" property="uid" size="1">
<html:options property="uids" labelProperty="unames"/>
</html:select>
其中uids和unames为等长的数组。
2.利用name属性指定存放在某个范围中的对象
例如
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
三、<html:optionsCollection>标签与<html:options>标签相似
它通过name属性或property属性指定一个集合对象,该对象中的每一个元素为一个Bean,并且在Bean中分别具有与标签中label属性和value属性指定的值匹配的getXXX方法。
如果使用name属性,那么将存放在pageContext/request/session/application中的Bean作为指定的集合;如果使用property属性,那么将使用和表单相关联的FormBean中的属性作为指定的集合。
也可以同时使用二者,此时用法同其他html标签。
其中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:select>
<html:optionsCollection
name="xueli"
value="userName"
label="userValue"/>
</html:select>
该标签和org.apache.struts.util.LabelValueBean结合得更好:
ArrayList array=new ArrayList();
array.add(new LabelValueBean("1","高中"));
array.add(new LabelValueBean("2","本科"));
array.add(new LabelValueBean("3","硕士"));
array.add(new LabelValueBean("4","博士"));
request.setAttribute("xueli",array);
<html:select>
<html:optionsCollection name="xueli"/>
</html:select>
分享到:
相关推荐
6. **使用HTML注释**:一种临时解决方案是,将`<c:if>`标签及其内容用HTML注释`<!-- -->`包裹起来,但这会牺牲代码的可读性和调试能力。 在解决此类问题时,通常需要结合日志输出、错误信息以及社区论坛上的解决...
`<html:select>`标签用于创建一个HTML的`<select>`元素,该元素允许用户从一组预定义的选项中选择一个或多个值。`<html:select>`通常与`<html:option>`标签一起使用,后者用于定义每个可选项。 #### 二、设置默认...
<html:select property="beanProperty"> <html:options collection="collectionName" property="valueProp" labelProperty="labelProp"/> </html:select> ``` - `property="beanProperty"`: 指定ActionForm或Bean...
5. **Select标签** - `<s:select>` 用于创建下拉列表。 - 示例: ```xml <s:select tooltip="Chooseuser_type" label="" list="#{'free':'免费','vip':'会员'}" value="#{'free':''}" name="bean.user_type" ...
此外,`<f:selectItems>`标签用于定义下拉列表中的选项。 ```html <h:selectOneMenu value="#{bean.selectedOption}"> <f:selectItems value="#{bean.optionsList}"/> </h:selectOneMenu> ``` 在这个例子中,`#{...
<html:select property="selectedItem"> <html:option value="Option1">Option 1</html:option> <html:option value="Option2">Option 2</html:option> <html:option value="Option3">Option 3</html:option> </...
这可以通过`form:options`标签实现,它可以遍历一个集合并生成对应的`<option>`标签。例如: ```jsp <form:select path="selectedCity"> <form:options items="${cityList}" itemValue="id" itemLabel="name" /> ...
在Struts2框架中,实现页面`<select>`标签默认选中的功能是非常实用且常见的需求。这不仅可以提高用户体验,还能让界面看起来更加专业。本文将详细介绍如何通过Struts2的相关标签来实现这一功能。 ### Struts2框架...
总结来说,`s:select`标签在Struts2中用于构建HTML `<select>`元素,通过`list`属性传递选项数据,`listKey`和`listValue`分别指定选项的键和显示值。`headerKey`和`headerValue`用于创建默认的头部选项,`value`...
### 关于 `<html:select>`、`<html:option>`、`<html:options>` 和 `<html:optionsCollection>` 的详细解析 #### `<html:select>` 标签 `<html:select>` 是一个用于生成 HTML `<select>` 元素的标签。在 Struts 1.x...
HTML中的`<select>`标签是构建交互式网页表单的重要元素,它允许用户从预定义的选项中选择一个或多个值。在HTML中,`<select>`标签通常与`<option>`标签配合使用,用于创建下拉列表。下面将详细介绍`<select>`标签的...
14. <hr>:<hr> 标签在 HTML 页面中创建一条水平线。 15. <center>:对其所包括的文本进行水平居中。 16. <a>:<a> 标签可定义锚。锚(anchor) 有两种用法:通过使用 href 属性,创建指向另外一个文档的链接(或...
HTML标签库提供了许多与HTML表单相关的标签,如`<html:form>`、`<html:text>`、`<html:password>`等。例如,创建一个包含用户名和密码输入的登录表单: ```jsp <html:form action="login"> ...
为了将XML与XSL结合,我们需要在HTML中引用XSL文件,通常是通过`<xsl:transform>`标签,但考虑到题目要求不使用JavaScript,我们可以使用以下HTML5的`<link>`标签: ```html <link rel="stylesheet" type="text/xsl...
6. `<html:select>`和`<html:option>`标签: 这两个标签组合创建下拉选择列表。`<html:select>`定义列表,`<html:option>`定义选项。例如,创建一个包含城市选择的列表: ```html <html:select property="city"> ...
6. `<html:select>`和`<html:option>`标签: `<html:select>`用于创建下拉选择列表,`<html:option>`则用于定义下拉列表中的选项。`<html:select>`的`property`属性同样与ActionForm对象的属性关联,而`...
2. **XML标签库**:用于处理XML文档,包括解析XML(`<x:parse>`)、选择XML节点(`<x:select>`)等。 3. **Function标签库**:提供了一系列预定义的函数,用于字符串操作、数组处理等。 4. **I18N(国际化)标签库**...
下面详细介绍几种常用的HTML标签: ##### 2.1 `<html:form>` 标签 - **功能**:该标签用于定义HTML表单。 - **示例**: ```xml <html:form action="/submit" method="post"> ... </html:form> ``` - **关键...
本教程“权威实用jsp自定义标签demo<select,checkbox,radio>”专注于演示如何创建和使用自定义标签,特别是与HTML元素`<select>`(下拉列表)、`<checkbox>`(复选框)和`<radio>`(单选按钮)相关的功能。...