查看Apache Struts2的帮助文档,关于对s:doubleselect标签的介绍太肤浅,根本不能满足实质的需要.通过文档及网络上的一些介绍,发现文字介绍太繁琐,不如举例说明它的使用方法要简单得多.
首先要保证两个有关联关系的对象:
学生类,Student.java
public class Student {
public Integer id;
private String name;
private Clazz clazz;
public Student(Integer id,String name,Clazz clazz) {
this.id = id;
this.name = name;
this.clazz = clazz;
}
//getter and setter...
}
班级类,Clazz.java
public class Clazz {
public Integer id;
private String className;
public Clazz(Integer id,String className) {
this.id = id;
this.className = className;
}
//getter and setter...
}
Action中的execute方法可以这样写:
public String execute() throws Exception {
Clazz clazz1 = new Clazz(1,"一年级");
Clazz clazz2 = new Clazz(1,"二年级");
List clazzList = new ArrayList();
clazzList.add(clazz1);clazzList.add(clazz2);
Student user1 = new Student(1,"Tim",clazz1);
Student user2 = new Student(1,"Kitty",clazz1);
List userList1 = new ArrayList();
userList1.add(user1);userList1.add(user2);
Student user3 = new Student(1,"Peter",clazz2);
Student user4 = new Student(1,"Tom",clazz2);
List userList2 = new ArrayList();
userList2.add(user3);userList2.add(user4);
Map map = new HashMap();
map.put(clazz1, userList1);map.put(clazz2, userList2);//理解此处很重要
request.setAttribute("clazzList", clazzList);
request.setAttribute("map", map);
return "success";
}
标签可以这配置:
<s:doubleselect
list="#request.clazzList"
listKey="id"
listValue="className"
doubleName="userId"
doubleId="userId"
doubleList="#request.map.get(top.id)" <!-- 此处很重要 -->
doubleListKey="id"
doubleListValue="name"/>
显示效果就是第一个下拉式列表会出现"一年级","二年级",当选择"一年级"时第二个下拉式列表会显示"Tim"和"Kitty",当选择"二年级"时,则会显示"Peter"和"Tom".当把此标签放到form表单里,提交到后台时传递的是一个参数名叫"userId"的字符串数据,即此名字由 doubleName 指定,而get(top.id)的意思是用从第一个下拉式列表中选定的数据来联动显示第二个下拉式列表中的数据(联动数据通过后台代码"map.put(clazz1, userList1);map.put(clazz2, userList2);"来完成).
分享到:
相关推荐
在本篇文章中,我们将深入探讨Struts2框架中的`doubleselect`标签的使用方法,并结合一个具体的示例来展示如何将此标签与Hibernate和Spring框架整合在一起,以便于更好地理解和运用这一技术。 ### Struts2框架简介 ...
在"struts2 doubleselect标签的用法例子"中,我们将探讨如何实现这个功能。首先,我们需要理解`doubleselect`标签的基本结构和属性。`doubleselect`标签通常包含两个部分:父级选择器和子级选择器,它们之间的关联...
4. **JSP页面**:在JSP页面中,使用`<s:doubleselect>`标签来声明这两个下拉列表。标签的属性包括`list`、`listKey`、`listValue`、`name`等,它们分别用来指定数据源、键字段、值字段以及Action中的属性名。 ```...
在Struts2中,我们有许多内置的标签来帮助开发者更方便地处理表单元素,例如`<s:select>`和`<s:doubleselect>`就是其中两个用于创建下拉列表的标签。下面我们将详细探讨这两个标签以及如何在J2EE项目中使用它们。 1...
理解`list`、`listKey`、`listValue`、`doubleList`、`doubleListKey`和`doubleListValue`等属性以及`top`变量的用法,是正确使用`doubleselect`标签的关键。在实际项目中,确保正确设置这些属性,以及正确处理`...
### Struts2中doubleselect标签实现省市联动案例详解 #### 一、背景介绍 在Web应用开发中,经常需要处理一些具有层级关系的数据选择问题,比如中国的省市县选择。为了提高用户体验并简化开发过程,Struts2框架提供...
4. **OGNL表达式**:在JSP页面中,我们可以使用OGNL表达式来获取Action中的属性,如`<s:doubleselect>`标签中的`list`、`listKey`、`listValue`等属性,都需要通过OGNL来绑定Action中的数据。 5. **`doubleselect`...
### Struts2中的DoubleSelect标签的用法 在Struts2框架中,`doubleSelect`标签是一种非常实用的工具,它允许用户在一个页面上通过两次选择来完成复杂的数据关联操作。这种标签尤其适用于多级菜单或者层级关系的选择...
Struts2 Doubleselect标签是用于创建二级联动下拉列表的,这种控件在网页表单中常见于需要显示层次关系数据的场景,例如省份-城市的选择。Doubleselect标签结合了两个下拉列表,其中一个的选择会影响到另一个下拉...
doubleselect标签:生成一个相互关联的列表框,该标签由两个下拉选择框组成。 datetimepicker标签:生成一个日期、时间下拉列表框。 head标签:生成HTML页面的HEAD部分。 file标签:在页面上生成一个上传文件元素...
`<s:append>` 标签用于向列表中添加值,类似于在Java中调用`List.add()`方法。这在动态构建列表时非常有用。 ```xml <s:append var="myList"> <s:property value="item"/> </s:append> ``` ### 5. `<s:...
本文将针对开发者在实践中遇到的问题进行详细的解答,并通过具体示例帮助读者更好地理解和掌握Struts 2新表单标签的使用方法。 #### 表单标签概述 在Struts 2中,表单标签通过模板的方式输出HTML代码,相较于Struts...
5. `<s:doubleselect>`:创建双列选择框,允许用户从两个列表中选择值。 E部分: 1. `<s:if>`,`<s:elseif>`,`<s:else>`:条件判断语句,用于控制标签的渲染。 F部分: 1. `<s:fielderror>`:显示字段级别的错误...
`<s:doubleselect>` 标签 - **用途**:创建双列表选择框。 - **示例**: ```xml <s:doubleselect doubleName="selectedOptions" doubleList="allOptions" /> ``` ##### 17. `<s:if>`、`<s:elseif>`、`<s:else>`...
1. `<s:generator>`:与`s:iterator`标签配合使用,生成序列。 H组标签: 1. `<s:head>`:在HTML的`<head>`标签中使用,用于结束头文件。 2. `<s:hidden>`:创建隐藏字段,用于存储不显示的数据。 I组标签: 1. `...
5. `<s:doubleselect list="" doubleName="" doubleList=""></s:doubleselect>` - 双下拉框,用于双向选择关联数据。 E部分: 1. `<s:if test="">`、`<s:elseif test="">`、`<s:else>` - 条件判断标签,用于根据...
在Struts2中,所有的标签都统一在`<s>`前缀下,通过引入`<%@ taglib prefix="s" uri="/struts-tags" %>`就可以在页面上使用这些标签。 **A组标签:** 1. `<s:a>` - 用于创建超链接,与HTML的`<a>`标签类似,可以...
本文将重点介绍这两部分标签的应用场景以及使用方法。 #### 二、表单UI标签 表单UI标签主要涉及用于构建HTML表单元素的标签,这些标签在Struts 1.x时代就已经存在,并在Struts 2.0中得到了进一步增强和完善。新增...
这只是Struts2标签库的一小部分,实际中还有许多其他标签,如<s:form>、<s:textfield>、<s:textarea>等,它们提供了丰富的功能,帮助开发者构建复杂的Web应用。 总的来说,Struts2标签库是其强大功能的核心,通过...
### Struts2标签大全 Struts2框架是Java Web开发中的一个重要组成部分,它极大地简化了Web应用程序的开发过程。在Struts2中,标签库(Tag Library)扮演着非常...熟悉这些标签对于使用Struts2进行高效开发至关重要。