Struts2配置一个Action实现多个请求

转载 2015年07月06日 21:55:01

struts2中的Action默认执行方法为execute(),尽管可以通过<action name="addUser" class="addUser" method="doFun">设置默认执行方法,但也难以改变一个<action>一个方法的窘境。

那么,一个Action中多个方法,如何配置呢?

先上方法,简单举例:用户管理

UserManagerAction.java

  1. public class UserManagerAction extends ActionSupport implements RequestAware {  
  2.   
  3.     private User user;  
  4.       
  5.     @Resource  
  6.     private UserManager userManager;   
  7.       
  8.     private Map<String, Object> request;  
  9.       
  10.     @Override  
  11.     public void setRequest(Map<String, Object> request) {  
  12.         this.request = request;  
  13.     }  
  14.       
  15.     public User getUser() {  
  16.         return user;  
  17.     }  
  18.   
  19.     public void setUser(User user) {  
  20.         this.user = user;  
  21.     }  
  22.   
  23.     public String addUser() throws Exception {  
  24.         System.out.println("-----UserManagerAction.addUser()-----");  
  25.         userManager.addUser(user);  
  26.         return "success";  
  27.     }  
  28.       
  29.     public String modifyUser() {  
  30.         System.out.println("-----UserManagerAction.modifyUser()-----");  
  31.         userManager.modifyUser(user);  
  32.         return "success";  
  33.     }  
  34.       
  35.     public String delUser() {  
  36.         System.out.println("-----UserManagerAction.delUser()-----");  
  37.         userManager.delUser(user.getUsername());  
  38.         return "success";  
  39.     }  
  40.       
  41.     public String queryUser() {  
  42.         System.out.println("-----UserManagerAction.queryUser()-----");  
  43.         User user1 = userManager.queryUser(user.getUsername());  
  44.         request.put("user1", user1);  
  45.         return "success";  
  46.     }  
  47.   
  48.     public String queryAllUser() {  
  49.         System.out.println("-----UserManagerAction.queryAllUser()-----");  
  50.         List<User> userList = userManager.queryAllUser();  
  51.         request.put("userList", userList);  
  52.         return "success";  
  53.     }  
  54. }  


struts.xml配置,一个Action处理多个请求的配置

1.第一种方法:多个<action>标签,设置不同的method属性

  1. <package name="userManager" namespace="/user" extends="struts-default">  
  2.     <action name="addUser" class="com.ys.action.UserManagerAction" method="addUser" />  
  3.     <action name="modifyUser" class="com.ys.action.UserManagerAction" method="modifyUser" />  
  4.     <action name="delUser" class="com.ys.action.UserManagerAction" method="delUser" />  
  5. </package>  


2.第二种方法:采用!的方式访问请求,例如:user/userManager!addUser

  1. <package name="userManager" namespace="/user" extends="struts-default">  
  2.     <action name="userManager" class="com.ys.action.UserManagerAction">  
  3.         <result name="success">/success.jsp</result>  
  4.         <result name="error" type="redirect">/error.jsp</result>  
  5.     </action>      
  6. </package>  

 

*.jsp页面请求如:myForm.action = "user/userManager!addUser";

3.第三种方法:采用通配符的方式(推荐)

  1. <package name="userManager" namespace="/user" extends="struts-default">  
  2.     <action name="*User_*" class="UserManagerAction" method="{1}User">  
  3.         <result name="success">/{2}.jsp</result>  
  4.         <result name="error" type="redirect">/error.jsp</result>  
  5.     </action>  
  6. </package>  

({1}匹配第一个*,{2}匹配第二个*)

*.jsp页面请求如:myForm.action = "user/addUser_success";

相关文章推荐

Struts2配置一个Action实现多个请求

Hibernate Annotation

struts2中,一个Form表单配置多个action实现原理及案例

一、原理说明

struts2 的一个action中配置多个result input

主题:struts2 的一个action中配置多个result input 讨论下 本文来自: 浪曦视频在线 作者: hoojo 发表于: 2009-6-4 19:05 阅读: 200...

struts2中多个submit向一个Action提交

有时候我们需要这样一种情况: 一个form表单,对应多个submit,需要提交到一个action,那么这时候我们应该怎么做呢? 其实struts1中就有关于多submit提交的处理方式,这里咱们只...

Struts2之一个Action包含多个控制处理逻辑

http://www.cnblogs.com/freeabyss/p/3290297.html 一、使用Action的动态方法调用     如果一个页面包含多个按钮,系统分别提交给Ac...

Struts2 action中一个方法返回多个页面

很多时候,一个页面或不同页面中有多个form表单需要提交到action中的同一个方法中,这时,可在form表单提交的action后加参数。具体做法如下方便起见,在同一个页面建两个form 标签,提交到...
  • cbs9588
  • cbs9588
  • 2016年07月03日 15:39
  • 1734

Struts2+Spring+iBatis整合用户管理实例之一:多个Action、service的配置

原帖地址:http://blog.csdn.net/ruantao1989/article/details/8143899 感谢原作者     自己用来练习的入门级的实例,高手可以直接忽略 哈哈。...

struts2之Action配置的各项默认值、result配置的各种试图转发类型及为应用指定多个

struts2之Action配置的各项默认值、result配置的各种试图转发类型及为应用指定多个struts配置文件   1、Action配置的各项默认值 (1)、如果没有为acti...
  • kkrgwbj
  • kkrgwbj
  • 2014年08月27日 16:30
  • 410

【Struts2学习笔记(1)】Struts2中Action名称的搜索顺序和多个Action共享一个视图--全局result配置

1.获得请求路径的URI,例如url是:http://server/struts2/path1/path2/path3/test.action 2.首先寻找namespace为/path1/pat...

Struts2一个Action内包含多个请求处理方法的处理,method的使用方法,struts2中的路径问题,通配符映射

Struts2一个Action内包含多个请求处理方法的处理,method的使用方法,struts2中的路径问题,通配符映射 struts2的关于method=“{1}"意思详解   name=...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Struts2配置一个Action实现多个请求
举报原因:
原因补充:

(最多只允许输入30个字)