`
lovejing007
  • 浏览: 95313 次
社区版块
存档分类
最新评论

struts2 doubleselect示例

    博客分类:
  • J2EE
阅读更多

doubleselect算是Struts2中稍微复杂点的表单标签, 尤其官方示例比较简单, 没有太大的实用价值.

 

<s:doubleselect label="doubleselect test2" name="menu" list="#{'fruit':'Nice Fruits', 'other':'Other Dishes'}" doubleName="dishes" doubleList="top == 'fruit' ? {'apple', 'orange'} : {'monkey', 'chicken'}" />

 

从这个官方示例中可以看到基本用法, list开头的代表的是第一级下拉框的属性, doubleList开头的则是第二级下拉框. 与select标签的属性基本是对应的.

 

在实际应用中, 我们比较关注的就是list和doubleList这两个属性了, list是存放的第一级下拉框的数据集合, 比如List<FatherBean>, 而doubleList就可以用Map<String, List<SonBean>>来存储, 其中map的键名String与第一级下拉框相关联.

 

现在来展示一个我写的示例:

先写两个javaBean,一般情况下是跟数据库的表相关联的:

package com.student.bean;

public class Province {
int id;
String name;
//set和get方法

}

package com.student.bean;

public class City {
int id;
String name;
int provinceId;
//set和get方法
}

再来写Action,用来往web页面发送数据:

package com.student.action;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.opensymphony.xwork2.ActionSupport;
import com.student.bean.Province;
import com.student.bean.City;

public class DoubleSelectAction extends ActionSupport {
private List<Province> provinceList;
private Map<Integer, List<City>> cityMap;

public List<Province> getProvinceList() {
return provinceList;
}

public void setProvinceList(List<Province> provinceList) {
this.provinceList = provinceList;
}

public Map<Integer, List<City>> getCityMap() {
return cityMap;
}

public void setCityMap(Map<Integer, List<City>> cityMap) {
this.cityMap = cityMap;
}

public String execute() throws Exception {
provinceList= new ArrayList<Province>();

Province province;
province = new Province();
province.setId(1);
province.setName("山西省");
provinceList.add(province);

province = new Province();
province.setId(2);
province.setName("陕西省");
provinceList.add(province);

province = new Province();
province.setId(3);
province.setName("河南省");
provinceList.add(province);


cityMap = new HashMap<Integer, List<City>>();

List<City> cityList = new ArrayList<City>();
City city;
city = new City();
city.setId(1);
city.setName("太原市");
city.setProvinceId(1);
cityList.add(city);

city= new City();
city.setId(2);
city.setName("大同市");
city.setProvinceId(1);
cityList.add(city);

city= new City();
city.setId(3);
city.setName("长治市");
city.setProvinceId(1);
cityList.add(city);

cityMap.put(1, cityList);

cityList = new ArrayList<City>();
city= new City();
city.setId(4);
city.setName("西安市");
city.setProvinceId(2);
cityList.add(city);

city= new City();
city.setId(5);
city.setName("汉中市");
city.setProvinceId(2);
cityList.add(city);

city= new City();
city.setId(6);
city.setName("咸阳市");
city.setProvinceId(2);
cityList.add(city);

cityMap.put(2, cityList);

cityList = new ArrayList<City>();
city= new City();
city.setId(7);
city.setName("郑州市");
city.setProvinceId(3);
cityList.add(city);

city= new City();
city.setId(8);
city.setName("开封市");
city.setProvinceId(3);
cityList.add(city);

city= new City();
city.setId(8);
city.setName("洛阳市");
city.setProvinceId(3);
cityList.add(city);

cityMap.put(3, cityList);


return SUCCESS;

}
}

现在写配置文件:

<action name="doubleSelect" class="com.student.action.DoubleSelectAction">
<result name="success">/tagsDoubleSelect.jsp</result>
</action>

 

最后写显示级联下拉菜单的web页面:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>struts2级联下拉菜单示例</title>
</head>
<body>

<s:form name="f1">
<s:doubleselect list="provinceList" listKey="id" listValue="name"
doubleName="cityId"
doubleList="cityMap.get(top.id)" doubleListKey="id" doubleListValue="name"/>
</s:form>
</body>
</html>

 

此处要注意的是top的用法,top代表的就是list当前选中的对象, 所以top.id对应的就是当前选中的Province对象中的ID, cityMap.get(top.id)即根据当前选中的Province对象中的ID来取出第二级下拉框的数据集合

 

分享到:
评论

相关推荐

    struts2 标签 doubleselect动态 用法

    `doubleselect`标签是Struts2提供的一个特殊标签,用于创建具有两个级联选择框的用户界面,通常用于父类别与子类别之间的关联选择,如在上述例子中的部门与人员选择。 在`doubleselect`标签中,`list`属性用于指定...

    struts2 doubleselect 实例

    Struts2 Doubleselect标签是用于创建二级联动下拉列表的,这种控件在网页表单中常见于需要显示层次关系数据的场景,例如省份-城市的选择。Doubleselect标签结合了两个下拉列表,其中一个的选择会影响到另一个下拉...

    struts2中doubleselect标签的应用

    在本篇文章中,我们将深入探讨Struts2框架中的`doubleselect`标签的使用方法,并结合一个具体的示例来展示如何将此标签与Hibernate和Spring框架整合在一起,以便于更好地理解和运用这一技术。 ### Struts2框架简介 ...

    extjs+struts2省市区三级联动完整示例

    在本文中,我们将深入探讨如何使用ExtJS 4和Struts2框架实现省市区三级联动的完整示例。这个示例适用于需要在Web应用程序中实现地理区域选择功能的情况,例如用户地址输入。以下是对该技术栈及其实现方法的详细说明...

    Struts2的doubleselect标签演示

    在Struts2框架中,`doubleselect`标签是用于创建一对多选择的HTML元素,通常表现为两个下拉列表,其中一个选项的选择会影响到另一个下拉列表的选项显示。这个标签使得用户在前端界面可以方便地进行关联数据的选择,...

    深入浅出Struts2(附源码)

    作者处处从实战出发,在丰富的示例中直观地探讨了许多实用的技术,如数据类型转换、文件上传和下载、提高Struts 2应用的安全性、调试与性能分析、FreeMarker、Velocity、Ajax,等等。跟随作者一道深入Struts 2,聆听...

    Struts2标签详解及具体实例解析

    ### Struts2标签详解及具体实例解析 #### 一、概述 Struts2是一个基于MVC模式的开源框架,它提供了丰富的标签库来简化Web应用的开发过程。这些标签不仅功能强大,而且易于使用,可以帮助开发者快速构建动态网页。...

    doubleselect.doc

    ### Struts2中doubleselect标签实现省市联动案例详解 #### 一、背景介绍 在Web应用开发中,经常需要处理一些具有层级关系的数据选择问题,比如中国的省市县选择。为了提高用户体验并简化开发过程,Struts2框架提供...

    struts2标签学习

    Struts2还增加了如datepicker、doubleselect、timepicker、optiontransferselect等常用控件,极大地丰富了开发者在项目中的选择。 1. `&lt;s:form&gt;` 标签用于创建表单,可以指定action属性来指定提交的Action,method...

    Struts2常用标签

    ### Struts2常用标签详解 #### 一、概述 Struts2框架作为一款成熟的Web应用开发框架,在Java Web开发领域有着广泛的应用。Struts2框架提供了丰富的标签库,这些标签可以极大地方便开发者进行Web页面的开发工作。...

    struts2标签大全

    ### Struts2 标签大全解析 #### 一、概述 Struts2 是一款流行的 Java Web 开发框架,它提供了一系列强大的标签库来简化前端页面的开发工作。这些标签不仅功能强大,而且易于使用,可以帮助开发者快速构建动态的...

    JSP_struts2标签大全

    ### JSP_Struts2标签详解 #### 一、引言 在Java Web开发领域,Struts2框架因其灵活且强大的特性而备受青睐。Struts2提供了丰富的标签库,这些标签不仅可以帮助开发者简化JSP页面的编写工作,还能提高程序的执行效率...

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    书中介绍了如何利用Struts 2 来解决Web 应用开发中的常见问题,同时还深入浅出地探讨了许多能帮助程序员编写Struts 2 应用程序的技巧,如管理页面导航活动、输入验证、国际化和本地化、对Ajax 的支持,等等。...

    JSP_struts2标签大全.doc

    ### JSP_Struts2标签详解 #### 一、引言 在Java Web开发领域中,Struts2框架凭借其强大的功能和灵活性深受开发者喜爱。为了更高效地进行表单处理和页面展示,Struts2提供了丰富的标签库。本文将详细介绍JSP_Struts...

    Struts2标签 UI标志又可以分为表单UI和非表单UI两部分

    ### Struts2 标签详解:表单UI与非表单UI #### 一、概述 Struts2作为Java Web开发中的一个重要框架,为开发者提供了丰富的标签库来简化Web页面的构建过程。根据官方文档所述,“UI标签又可以分为表单UI和非表单UI...

    下面就介绍下Struts2每个标签的用法(有错请指正):

    ### Struts2 标签详解 #### 一、概述 Struts2 是一款基于 Java 的企业级应用开发框架,它提供了丰富的标签库来简化前端页面的开发工作。这些标签不仅功能强大,而且易于使用,可以帮助开发者高效地创建复杂的用户...

    struts的三级级联

    在Struts2中,`doubleselect`标签是一个非常实用的功能,它允许用户在两个级联的下拉列表中进行选择,通常用于处理层级数据,如分类和子分类,或者部门和员工等关系。 在描述中提到的官方示例虽然展示了`...

Global site tag (gtag.js) - Google Analytics