`
isiqi
  • 浏览: 16538143 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

struts2如何实现select标签和doubleselect标签

阅读更多

struts2如何实现select标签和doubleselect标签

1. select标签有三种实现的形式:

(1)直接写在jsp页面里的list, map, array等结构

<s:select list="{'山东','山西','河南','河北'}" label="籍贯" />

(2)通过声明bean实体的方法调用对象中list, map, array等结构

struts2.values.Province

public class Province {
private int pid;
private String pname;

public Province(int pid, String pname) {
this.pid = pid;
this.pname = pname;
}

public void setPname(String pname) {
this.pname = pname;
}
public String getPname() {
return pname;
}
public void setPid(int pid) {
this.pid = pid;
}
public int getPid() {
return pid;
}


public String toString() {
return new ToStringBuilder(this).append("pid", this.pid).append(
"pname", this.pname).toString();
}

}

struts2.values.Provinces.java

public class Provinces {

private List<Province> l;
private Map<Integer,Province> m;

public Provinces() {
l = new ArrayList<Province>();
l.add(new Province(1,"山东省"));
l.add(new Province(2,"山西省"));
l.add(new Province(3,"河北省"));
l.add(new Province(4,"河南省"));

m = new HashMap<Integer,Province>();
m.put(1, new Province(1,"山东省"));
m.put(2, new Province(1,"山西省"));
m.put(3, new Province(3,"河北省"));
m.put(4, new Province(4,"河南省"));
}

public List<Province> getL() {
return l;
}
public void setL(List<Province> l) {
this.l = l;
}
public Map<Integer, Province> getM() {
return m;
}
public void setM(Map<Integer, Province> m) {
this.m = m;
}
}

<s:bean name="struts2.values.Provinces" id="p" />

<s:select list="%{#p.l}" listValue="pname" listKey="pid" label="籍贯"></s:select>

(3). 保存在action类中的List, Map

注意一定是放在此action跳转到的页面中, 否则action不初始化也就没法产生List, Map

<s:form action="login" method="post">
<s:bean name="struts2.values.Provinces" id="p"></s:bean>
<s:select list="provinces" listValue="pname" listKey="pid" label="籍贯"></s:select>

2.doubleselect标签

struts2.LoginAction.java

public class LoginAction extends ActionSupport {

private List<Province> provinces;
private Map<Integer, List<City>> country;
private String name;

@Override
public String execute() throws Exception {
// TODO Auto-generated method stub

provinces = new ArrayList<Province>();
provinces.add(new Province(1,"山东省"));
provinces.add(new Province(2,"山西省"));
provinces.add(new Province(3,"河北省"));
provinces.add(new Province(4,"河南省"));

List<City> sdProvince = new ArrayList<City>();
sdProvince.add(new City(1,1,"济南"));
sdProvince.add(new City(2,1,"青岛"));
sdProvince.add(new City(3,1,"XX"));
sdProvince.add(new City(4,1,"XX"));

List<City> sxProvince = new ArrayList<City>();
sxProvince.add(new City(5,2,"太原"));
sxProvince.add(new City(6,2,"大同"));
sxProvince.add(new City(7,2,"XX"));
sxProvince.add(new City(8,2,"XX"));

List<City> hbProvince = new ArrayList<City>();
hbProvince.add(new City(9,3,"石家庄"));
hbProvince.add(new City(10,3,"承德"));
hbProvince.add(new City(11,3,"XX"));
hbProvince.add(new City(12,3,"XX"));

List<City> hnProvince = new ArrayList<City>();
hnProvince.add(new City(13,4,"郑州"));
hnProvince.add(new City(14,4,"洛阳"));
hnProvince.add(new City(15,4,"XX"));
hnProvince.add(new City(16,4,"XX"));

country = new HashMap<Integer, List<City>>();
country.put(1, sdProvince);
country.put(2, sxProvince);
country.put(3, hbProvince);
country.put(4, hnProvince);
return SUCCESS;
}

public List<Province> getProvinces() {
return provinces;
}

public void setProvinces(List<Province> provinces) {
this.provinces = provinces;
}

public Map<Integer, List<City>> getCountry() {
return country;
}

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

public void setName(String name) {
this.name = name;
}

public String getName() {
return name;
}
}

网页中

<s:form action="login" method="post">

<s:doubleselect list="provinces" listKey="pid" listValue="pname"

doubleList="country[top.pid]" doubleListKey="pid"

doubleListValue="cname"doubleName="cname"></s:doubleselect>

</s:form>

这是最常见的一种报错, 如果你不幸遇到了这个错误且仔细查看代码均没有问题时, 请注意下面两个问题

org.apache.jasper.JasperException: tag 'select', field 'list': The requested list key 'p.l' could not be resolved as a collection/array/map/enumeration/iterator type. Example: people or people.{name}

1.你的List, Map等结构是放在哪里的, 如果是放在action类中的, 你的网页有没有调用到这个action, 如果没有就直接使用其中的List, Map. 就会报错, 请把你要显示select或者是doubleselect的网页设置成action的跳转页并按照跳转来查看.

2.你的标签中可能存在没有填写的赋值, 如name, listKey, listValue等

分享到:
评论

相关推荐

    j2ee-struts2-Select_DoubleSelect.rar_struts2 doubleselect

    在Struts2中,我们有许多内置的标签来帮助开发者更方便地处理表单元素,例如`&lt;s:select&gt;`和`&lt;s:doubleselect&gt;`就是其中两个用于创建下拉列表的标签。下面我们将详细探讨这两个标签以及如何在J2EE项目中使用它们。 1...

    Struts2级联doubleselect

    Doubleselect是Struts2提供的一种实现级联选择的组件,允许用户在一个下拉框的选择影响另一个下拉框的选项。 在Struts2级联doubleselect的实现中,主要涉及以下几个关键知识点: 1. **Action类**:Action类是业务...

    Struts2-Double-Select-Example

    "Struts2-Double-Select-Example"这个项目是Struts2框架的一个实例,用于演示如何在Web表单中实现双层选择框功能,这在处理复杂数据关联和用户选择时非常有用。 首先,我们需要了解Struts2框架的核心组件和工作原理...

    Struts2标签列表及说明

    Struts2 标签列表及说明 Struts2 是一个基于 Java 语言的 Web 应用程序 Framework,它提供了许多标签来帮助开发者快速构建 Web 应用程序。下面是 Struts2 的标签列表及说明: A: * &lt;s:a&gt;:超链接,类似于 HTML ...

    Struts_2_标签库(文档手册)_Tags-API-CLSW-JSP

    实现标签页面板,可以动态加载内容,提高用户界面的组织性和交互性。 #### `&lt;s:table&gt;` 标签 用于生成表格,支持数据绑定和列的定制。 #### `&lt;s:text&gt;` 标签 输出国际化的文本,可以加载资源文件中的消息。 ...

    struts2 标签库 帮助文档

    Struts 2 标签库(文档手册) Tags-API-CLSW-JSP &lt;%@ taglib prefix="s" uri="/struts-tags" %&gt; 就能使用struts2.0的标签库 下面就介绍每个标签的具体应用实例说明:按字母排列 A: 1. 2. &lt;s:a href=""&gt;&lt;/s:a&gt;-...

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

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

    struts2标签介绍

    Struts2是一个强大的MVC框架,它提供了丰富的标签库,简化了JSP页面的编写,提高了开发效率。在Struts2中,所有的标签都统一在`&lt;s&gt;`前缀下,通过引入`&lt;%@ taglib prefix="s" uri="/struts-tags" %&gt;`就可以在页面上...

    Java实训教程 Java软件开发实战 Java开发框架介绍 struts2_5_标签 共113页.pptx

    除了表单相关的标签外,Struts2还提供了一些非表单标签,用于实现更复杂的功能,例如: 1. **`&lt;s:property&gt;`**:用于输出值栈中的值。 2. **`&lt;s:i18n&gt;`**:支持国际化。 3. **`&lt;s:iterator&gt;`**:用于迭代集合或数组...

    struts2标签学习

    Struts2标签是Java开发中基于Struts2框架的一个重要组成部分,它提供了丰富的标签库,使得在JSP页面中处理业务逻辑和展示数据变得更加简洁和高效。与Struts1的标签库相比,Struts2的标签更加灵活且功能更加强大。 ...

    Jsp struts2标签大全

    ### JSP Struts2 标签详解 #### 一、简介 Struts2是一个流行的Java Web框架,提供了丰富的标签库来简化开发流程。这些标签不仅能够帮助开发者减少代码量,提高开发效率,还具备强大的功能性和灵活性。本文将详细...

    struts2标签整理

    Struts2提供了丰富的标签库(Tag Library),使得开发人员能够更方便地在JSP页面上进行动态内容展示和数据绑定等操作。 #### 二、标签库介绍 Struts2的标签库主要包括表单标签、条件判断标签、循环标签、国际化标签...

    struts2常用标签

    Struts2是一个强大的MVC框架,它提供了丰富的标签库,使得开发者可以更加便捷地构建动态网页。以下是对Struts2中一些常用标签的详细说明: 1. `&lt;s:a&gt;`:这是一个超链接标签,用于创建HTML的`&lt;a&gt;`标签。通过指定`...

    struts2标签大全详解

    Struts2是一个强大的MVC框架,它提供了丰富的标签库,使得开发者可以更加...这些标签极大地简化了Struts2应用中的视图层开发,提高了代码的可读性和维护性。通过熟练掌握这些标签,开发者能更高效地构建动态Web应用。

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

    Struts2中的UI标签为开发者提供了强大的工具来构建用户界面,不仅涵盖了常见的表单控件,还支持复杂的条件判断和循环迭代逻辑。通过本文的介绍,读者应该能够理解并掌握Struts2 UI标签的基本用法及其应用场景。在...

    Struts2+API+标签全解+网页说明

    doubleselect标签:生成一个相互关联的列表框,该标签由两个下拉选择框组成。 datetimepicker标签:生成一个日期、时间下拉列表框。 head标签:生成HTML页面的HEAD部分。 file标签:在页面上生成一个上传文件元素...

    struts2标签大全

    ### Struts2标签大全 Struts2框架是Java Web开发中的一个重要组成部分,它极大地简化了Web应用程序的开发过程。在Struts2中,标签库(Tag Library)扮演着非常重要的角色,它们为开发者提供了丰富的功能,帮助快速...

    深入浅出Struts2(附源码)

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

    struts2.0 标签清单

    Struts2.0是Struts框架的一个重大升级版本,它提供了更为强大且灵活的MVC架构...以上仅是Struts2.0标签库中的一部分,掌握这些标签将极大地提升开发者使用Struts2框架的能力,使Web应用程序的开发变得更加高效和优雅。

Global site tag (gtag.js) - Google Analytics