html:options是Struts中比较复杂的一个tage lib,用法灵活,但是Sturts提供的源码exercise taglib中没有提出常用jsp+ActionForm这样形式的最直接的总结,现从中总结如下,分两种情况:数组和Collection。
需求,要达到:
<select name="beanCollectionSelect" multiple="multiple" size="10"><option value="Value 0">Label 0</option>
<option value="Value 1" selected="selected">Label 1</option>
<option value="Value 2">Label 2</option>
<option value="Value 3" selected="selected">Label 3</option>
<option value="Value 4">Label 4</option>
<option value="Value 5" selected="selected">Label 5</option>
<option value="Value 6">Label 6</option>
<option value="Value 7">Label 7</option>
<option value="Value 8">Label 8</option>
<option value="Value 9">Label 9</option></select>
要实现上述效果,需要两步:
第一:设置ActionForm,
也分两小步:第一小步必须在ActionForm中,有一句
private Collection beanCollection;
public Collection getBeanCollection();
Collection beanCollection要确保是一个实现,如ArrayList,如果不是则会报No collection found的错误,Struts的最大不方便就是一旦出问题,定位很难,不知道什么地方使用错误,或忘记设置什么了。
因为前面需求中option的value值和label值不一样,那么在beanCollection中保存的就是一个value和label组成的对象,名为LabelValueBean,在LabelValueBean中有两个属性value和label,
在程序某个地方要为beanCollection赋值,如:
Vector entries = new Vector(10);
entries.add(new LabelValueBean("Label 0", "Value 0"));
entries.add(new LabelValueBean("Label 1", "Value 1"));
entries.add(new LabelValueBean("Label 2", "Value 2"));
entries.add(new LabelValueBean("Label 3", "Value 3"));
entries.add(new LabelValueBean("Label 4", "Value 4"));
entries.add(new LabelValueBean("Label 5", "Value 5"));
entries.add(new LabelValueBean("Label 6", "Value 6"));
entries.add(new LabelValueBean("Label 7", "Value 7"));
entries.add(new LabelValueBean("Label 8", "Value 8"));
entries.add(new LabelValueBean("Label 9", "Value 9"));
然后执行setBeanCollection(entries);
这样ActionForm中的beanCollection算有值了。
第二小步,需要设置Selected,selected有两种,单选和多选:
在ActionForm中必须有:
private String singleSelect = "Single 5";
public String getSingleSelect() {
return (this.singleSelect);
}
public void setSingleSelect(String singleSelect) {
this.singleSelect = singleSelect;
}
或多选,多选必须是数组:
private String[] beanCollectionSelect = { "Value 1", "Value 3",
"Value 5" };
public String[] getBeanCollectionSelect() {
return (this.beanCollectionSelect);
}
public void setBeanCollectionSelect(String beanCollectionSelect[]) {
this.beanCollectionSelect = beanCollectionSelect;
}
第二:在Jsp中写入tang lib语句如下:
<html:select property="beanCollectionSelect" size="10" multiple="true">
<html:optionsCollection name="testbean" property="beanCollection"/>
</html:select>
其中testbean是ActionForm的名称。
以上是html:options的Collection解决方案,如果option值很少,简单地可以实现为数组,两步:
第一:在ActionForm中,
private String values[] =
{ "Magazine", "Journal", "News Paper","Other" };
private String labels[] =
{ "L-Magazine", "L-Journal", "L-News Paper","L-Other"};
private String selected = "Magazine";
public String getSelected(){
return selected;
}
public void setSelected(String selected){
this.selected = selected;
}
public String[] getValues(){
return values;
}
public void setValues(String[] values){
this.values = values;
}
public String[] getLabels(){
return values;
}
public void setLabels(String[] labels){
this.labels = labels;
}
第二步在jsp中:
<html:select property=
"selected" >
<html:options name="testbean" property="values" labelProperty="label"/>
</html:select>
[转自: http://www.cnblogs.com/stephencat/archive/2006/04/22/381898.html ]
分享到:
相关推荐
在Struts中,`html:select`标签是用于创建HTML下拉列表的一个重要元素,特别适用于用户界面中需要选择单一或多个选项的场景。本文将深入探讨`html:select`标签的使用方法及其相关知识点。 首先,我们需要理解`...
在Struts中,HTML标签库是用于生成HTML表单元素的一个强大工具,这些元素与ActionForm对象绑定,使得数据的提交和处理变得更加方便。下面我们将深入探讨`html:checkbox`, `html:multibox`, `html:select`以及`...
在Struts中,我们通常使用`html:select`标签来生成HTML的`<SELECT>`标签。这个标签属于Struts的HTML标签库,用于在表单中创建下拉列表。 一、JSP页面中的Struts HTML标签 在JSP页面中,我们可以这样创建一个下拉...
要在JSP页面中使用Struts2的S标签,首先需要在页面顶部添加如下声明: ```jsp <%@ taglib prefix="s" uri="/struts-tags" %> ``` 这行代码的作用是将Struts2提供的标签库导入到当前JSP页面中,并指定前缀为“s”。...
Struts标签库是Struts框架的核心组成部分之一,用于简化页面的...以上内容详细阐述了Struts标签库中部分标签的功能和使用方法,这些标签极大地简化了Web页面的开发流程,提高了开发效率,是Struts框架的重要组成部分。
`html:select`的`property`属性指定ActionForm中对应的属性,而`options`或`option`子标签用于定义下拉列表的选项。通过`list`属性,可以将选项数据源绑定到ActionForm的属性,从而动态生成选项列表。 在实际应用中...
孙维琴struts1中掌握html标签小程序。有几个比较典型的标签:<html:select> <html:options> <html:link> <html:rewrite> <jsp:useBean> <jsp:setProperty>等的用法
Struts框架中的`html:optionsCollection`标签允许开发者轻松地从Java集合中生成HTML `<option>` 元素,从而构建动态的下拉列表或复选框组。本文档将详细介绍`html:optionsCollection`标签的使用方法,并结合其他相关...
3. **html:select**:用于创建HTML选择框,可以与html:option或html:options一起使用,动态生成选项列表。 **Logic Tags**: Logic Tags主要用于控制流程和迭代,例如条件判断和循环。虽然这里没有列出具体的逻辑...
Struts HTML标签库提供了一些处理选择和列表的标签,如`<html:options>`、`<html:select>`等。例如,创建一个下拉列表: ```jsp <html:select property="gender"> <html:option value="male">Male</html:option>...
它通常与`html:options`或`html:option`配合使用以填充下拉列表的选项。 主要属性包括: - `property`:表单提交时对应的数据模型的属性名。 - `list`:提供下拉选项的集合或数组。 示例代码: ```jsp ...
`html:optionsCollection`是简化版的`html:options`,可以直接从集合中提取值和文本: ```jsp <html:select property="atprovince"> ...
在页面中,我们使用了`<html:select>`标签来创建下拉列表,用于选择年份、月份和日期。 ```jsp <html:select property="sendYear" onchange="toDate()" styleId="year"> <html:options collection="yearCollection...
第三部分,"Struts中的下拉列表标签的使用.doc"讲解了如何使用Struts的`<html:select>`、`<html:option>`和`<html:optionsCollection>`标签来创建下拉列表。这些标签允许开发者动态生成选项,可以绑定到ActionForm的...
在实际使用中,结合OGNL表达式语言,Struts2标签可以非常灵活地处理各种复杂情况。例如,我们可以利用OGNL动态地计算条件、访问对象属性等。总的来说,掌握Struts2的标签库对于提高Struts2应用的开发质量和效率至关...
3. **在 JSP 页面中使用 `<html:select>` 和 `<html:options>`**: ```jsp <html:select property="xueli" multiple="true" size="3"> <html:options collection="xueli" property="userName" labelProperty=...
Struts是Java Web开发中的一款流行MVC框架,它的核心配置文件是`struts-config.xml`,用于定义应用的行为和组件。在这个配置文件中,你可以声明ActionForm Bean、Action类、数据源等关键元素,从而控制请求的处理...
- 可以使用`<html:options>`或`<html:optionCollection>`标签动态地从集合中生成选项。 4. 示例代码: - 创建一个简单的链接:`<html:link forward="index">首页</html:link>` - 创建一个表单:`...
Struts标签库是Struts框架的重要组成部分,它提供了丰富的自定义标签,使得开发者能够在JSP页面中更方便地处理业务逻辑和控制流程,从而提高代码的可读性和可维护性。 ### Struts 标签 1. **显示表单标签**:...
在Struts2框架中,`select`标签是一个非常重要的组件,用于创建HTML的下拉选择框。它允许我们在页面上提供一组选项供用户选择。在本文中,我们将深入探讨Struts2中`select`标签的三种不同的使用方法,以及如何从...