`
esffor
  • 浏览: 1370593 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Struts2的Collection和Map支持

阅读更多

struts2提供了从页面直接封装到List的功能,实现起来有两个办法

1.使用泛型定义集合中的对象类型
2.配合配置文件定义集合中的对象类型

User.java

package HelloWorld;

public class User ...{
    
private String username;
      
private String password;
      
private String[] books;
      
public String[] getBooks() ...{
            
return books;
        }

        
public void setBooks(String[] books) ...{
            
this.books = books;
        }

        
public String getUsername() ...{
            
return username;
        }

        
public void setUsername(String username) ...{
            
this.username = username;
        }

        
public String getPassword() ...{
            
return password;
        }

        
public void setPassword(String password) ...{
            
this.password = password;
        }

}

 LoginAction.java (不使用泛型,使用配置文件定义集合中对象的类型)

 

 

package HelloWorld;

import java.util.List;

import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;

public class LoginAction implements Action...{
 
 
private String tip;

private List users;





public List getUsers() ...{
    
return users;
}


public void setUsers(List users) ...{
    
this.users = users;
}


public String execute() throws Exception...{
    
//用第一个user做逻辑判断
      if(((User)this.getUsers().get(0)).getUsername().equals("admin")&&((User)this.getUsers().get(0)).getPassword().equals("1234"))...{
          ActionContext.getContext().getSession().put(
"user", ((User)this.getUsers().get(0)).getUsername());
          BookService bs
=new BookService();
          ((User)
this.getUsers().get(0)).setBooks(bs.getBooks());
          
this.setTip("welcome welcome");
          
return SUCCESS;
      }
else...{
          
return ERROR;
      }

  }


public String getTip() ...{
    
return tip;
}

public void setTip(String tip) ...{
    
this.tip = tip;
}



  
}

 

LoginAction_conversion.properties (放在和LoginAction同目录)

Element_users=HelloWorld.User 

表示集合中的Element类型是User,如果是Map类型,则还需要定义Key_users=****

 

index.jsp

 

<%...@ page language="java" contentType="text/html; charset=gb2312"
    pageEncoding
="gb2312"
%>
<%...@ taglib prefix="s" uri="/struts-tags" %>
<html>
  
<head> 
    
<title></title>
  
</head>
  
<body>      

     
<s:form action="Login">
       
<s:textfield name="users[0].username" key="username"></s:textfield>
       
<s:textfield name="users[0].password" key="password"></s:textfield>
       
<s:textfield name="users[1].username" key="username"></s:textfield>
       
<s:textfield name="users[1].password" key="password"></s:textfield>
       
<s:submit value="login"></s:submit>
     
</s:form>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
   
  
</body>
</html>

 

如果使用泛型定义List users,则可以省略LoginAction-conversion.properties文件

private List<List> users

分享到:
评论

相关推荐

    struts2迭代 Map List

    在这个场景下,我们关注的是如何在Struts2中迭代Map和List对象。这两种数据结构在Web开发中经常被用到,特别是在展示表单数据或动态渲染页面元素时。 首先,让我们深入了解`struts2-taglib`,这是一个包含Struts2...

    在Struts 2中实现CRUD

    Struts 2作为一款流行的Java Web应用框架,提供了丰富的功能支持,使开发者能够快速构建出稳定可靠的Web应用程序。本文将详细介绍如何在Struts 2框架中实现CRUD操作,并通过一个简单的示例项目来展示整个过程。 ###...

    深入浅出Struts2(附源码)

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

    ognl struts2

    这篇详述将围绕Struts2和OGNL的知识点进行展开。 一、OGNL简介 OGNL是一种强大的表达式语言,它允许程序在运行时访问和修改对象的属性。在Struts2框架中,OGNL被用来作为默认的表示层模板语言,负责在Action和视图...

    JAVA struts2 框架 面试题

    本文将详细解析 JAVA Struts2 框架相关知识点,涵盖异常处理、Servlet 生命周期、集合框架、HashMap 和 Hashtable 的区别、final、finally 和 finalize 的区别、sleep 和 wait 的区别、Overload 和 Override 的区别...

    Struts2学习文档

    以上内容详细介绍了Struts2框架的核心组成部分和技术细节,包括Action的实现方式、Result的配置方法、模型驱动的概念、异常处理机制、类型转换的实现、输入校验的流程、拦截器的设计与应用以及日志记录的配置。...

    struts2.3.20生成返回json 浏览器解析json

    Struts2.3.20 是 Apache Struts 框架的一个版本,它是一个流行的Java Web应用程序框架,用于构建和维护MVC(Model-View-Controller)架构的应用程序。在这个特定的话题中,我们关注的是如何在Struts2.3.20中生成JSON...

    struts2标签详解

    `Iterator`标签是Struts2的OGNL(Object-Graph Navigation Language)标签库的一部分,主要用于遍历集合对象,如ArrayList、LinkedList、Map等,将每个元素渲染到HTML页面上。这个标签在实际应用中非常常见,尤其是...

    Struts标签库 ppt教程

    `&lt;bean:define&gt;`用于定义变量,`&lt;bean:size&gt;`获取Collection或Map的长度,而`&lt;bean:write&gt;`则用于显示JavaBean及其属性的内容。 **Logic标签库**提供了一系列逻辑操作标签,用于进行条件判断和流程控制。比如,`...

    struts-bean标签

    Struts-Bean标签是Struts框架提供的一组用于在JSP页面中操作和管理JavaBean的标签库。这些标签使得开发者能够方便地访问和操作JavaBean的属性,以及处理HTTP请求头、参数和Cookie信息。以下是对Struts-Bean标签库中...

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

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

    logic:iterate标签当遍历的collection为Map时的使用

    Map里存放的是bean时 &lt;br&gt;&lt;logic:iterate id="destMap" name="srcMap"&gt;&lt;br&gt; &lt;bean:define id="bean" name="destMap" property="value" /&gt;&lt;br&gt; &lt;bean:write name="bean" property="name" /&gt;&lt;br&gt; &lt;/...

    Struts2中ognl遍历数组,list和map方法详解

    Struts2中OGNL遍历数组、List和Map方法详解 Struts2框架中,OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于在Web应用程序中访问和操作对象。其中,OGNL遍历数组、List和Map是常见的操作,...

    使用struts2的标签,在页面上用列表的方式列出action里集合中所有元素的所有属性值

    要将这些元素的属性值展示在页面上,我们可以利用Struts2提供的迭代标签`&lt;s:iterator&gt;`和属性访问标签`&lt;s:property&gt;`。下面是一个简单的示例: ```jsp &lt;%@ taglib prefix="s" uri="/struts-tags" %&gt; 属性1 ...

    遍历Map集合.pdf

    不过需要注意的是,标签是Struts 1.x版本中的标签,而Struts 2.x版本推荐使用JSTL或OGNL表达式进行遍历。 最后,文档中还提到了将List集合存入Map中,然后再通过遍历Map来输出List中的内容。这说明Map集合可以非常...

    Struts中Bean标签的应用

    这里的示例展示了如何计算`Collection`和`Map`对象的长度。 ##### 3. `&lt;bean:write&gt;` 标签 `&lt;bean:write&gt;` 标签用于打印对象或对象中的属性。尽管在实际开发中,更多地会使用EL表达式来完成相同的功能,但在某些...

    struts-logic iterate标签学习指南

    Struts-Logic Iterate标签是Apache Struts框架中的一个重要组件,用于在JSP页面中迭代集合对象,如数组、列表或Map。这个标签提供了一种简洁的方式来遍历数据,并且可以与Struts的其他标签(如`bean:write`)配合...

    计算机遍历Map集合.pdf

    2. **遍历值集合**:Map集合提供了values()方法,返回一个包含所有值的Collection视图。可以直接遍历这个集合来访问所有的值。 ```java for (Object value : map.values()) { System.out.println("值:" + value); }...

Global site tag (gtag.js) - Google Analytics