`

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

 
阅读更多

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

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

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

UserManagerAction.java

[java] view plaincopy
  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属性

[html] view plaincopy
  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

[html] view plaincopy
  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.第三种方法:采用通配符的方式(推荐)

[html] view plaincopy
  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处理多个请求 struts2实例

    默认情况下,一个Action类对应一个请求URL,但通过特定配置,可以让一个Action处理多个请求。 1. **配置Action映射** 在`struts.xml`文件中,我们可以使用`&lt;action&gt;`元素来定义Action的映射。如果希望一个Action...

    Struts2 处理多个请求

    在Struts2框架中,处理多个请求的方法是通过一个Action类实现多个处理方法。这使得代码结构更加清晰,每个方法对应特定的业务逻辑。以下是Struts2处理多个请求的三种主要方式的详细说明: 1. **动态方法调用 (DMI -...

    Struts 2使用注解配置Action

    1. `@Action`: 这是Struts 2中最核心的注解,用于标记一个方法为处理请求的Action。你可以指定Action的名字、结果页面和其他属性。例如: ```java @Action(value = "myAction", results = { @Result(name = ...

    ·Struts2配置文件介绍 超级详细

    在Struts2框架中,有多个重要的配置文件用于控制应用的行为与结构,其中最核心的是`struts.xml`文件。此外还包括`web.xml`、`struts.properties`、`struts-default.xml`等。 - **web.xml**:它是Web应用的部署描述...

    Struts2的Action多个方法配置和验证

    总结来说,Struts2的Action多方法配置使得我们能够灵活地组织业务逻辑,而其内置的验证机制则确保了数据的准确性和安全性。通过深入理解并熟练运用这些特性,开发者可以创建出高效、健壮的Java web应用。

    Struts2中struts_xml的Action配置详解

    在`struts.xml`中,一个Action配置通常由`&lt;action&gt;`元素定义,包含了多个属性,如`name`、`class`、`method`等。 `name`属性用于定义Action的唯一标识,它在请求URL中出现,用于区分不同的Action。例如: ```xml ...

    struts2 使用action属性接收中文参数(post提交)

    - 为了确保请求的正确编码,可以在web应用的过滤器(Filter)中进行强制转换,比如添加一个字符编码过滤器(CharacterEncodingFilter),并配置为在请求进入Action之前先进行编码转换。 3. **Action类的参数注解**...

    struts2配置文件

    Struts2是一个强大的MVC(Model-View-Controller)框架,用于构建企业级的Java Web应用程序。它在Java社区中广泛使用,因其灵活性、可扩展性和丰富的插件库而受到青睐。本文将深入探讨Struts2配置文件的核心概念及其...

    SSH笔记_Struts2配置

    总结,Struts2配置涉及多个方面,包括核心库的引入、配置文件的编写、Action、Result、Interceptor的定义以及与Spring的整合等。通过合理配置,可以构建出高效、灵活的Web应用。在实际项目中,应根据需求调整和优化...

    struts2配置文件加载顺序

    5. **package配置文件**:除了`struts.xml`外,开发者还可以创建多个包(package)配置文件,以实现模块化的配置。这些文件可以放在`struts.xml`中引入,也可以通过`&lt;include file="..."/&gt;`标签进行引入。 加载顺序...

    Struts2_Action学习笔记、通配符{1},{2}

    **ActionMethod**是一种在同一个Action类中实现多个方法的能力。例如,在`UserAction`类中,可以通过不同的URL参数来调用不同的方法: ```java public class UserAction extends ActionSupport { public String ...

    struts2 result转向到action

    这里定义了一个名为 `login` 的 Action,当表单提交到 `/login.action` 时,Struts2 将会调用 `action.LoginAction` 类来处理这个请求。如果 `LoginAction` 返回 `"success"`,那么根据配置的 `redirect-action` ...

    一个简单的struts2的手动配置

    总之,手动配置Struts2涉及多个层面,包括库的添加、核心配置文件的编写、web.xml的过滤器配置、Action的编写以及插件的使用。理解并熟练掌握这些配置,将有助于我们更好地利用Struts2框架构建高效、可扩展的Java ...

    MVC架构,struts详细配置,多个struts配置文件,Action的调用方式

    在Struts2中,Action类继承自`ActionSupport`或者自定义的Action基类,包含一个或多个处理请求的方法。通过`execute`方法或其他自定义方法来响应用户请求,每个方法对应一个业务逻辑。Action的执行结果通过`Result`...

    struts2实现的多个文件上传

    在Struts2的配置文件(通常是struts.xml)中,你需要为你的Action添加一个或多个action配置,指定处理文件上传的result类型。Struts2提供了一个特殊的`stream`结果类型,用于处理文件上传: ```xml &lt;action name...

    Struts2 Action参数详细说明

    但是,通过`method`属性,我们可以指定不同的方法对应不同的Action,这样可以实现一个类中多个方法的映射,提高代码复用性。例如: ```xml &lt;action name="add" class=...

    struts2配置文件详细说明

    - `struts.action.extension`定义了Struts2处理的请求后缀,默认是`action`,可以添加多个后缀,如`do, action,`。 - `struts.serve.static.browserCache`控制静态内容是否被浏览器缓存,`false`表示开发阶段禁用...

    struts2核心配置文件

    `struts.properties` 文件是Struts2框架的另一个核心配置文件,它主要用于定义框架本身的大量属性,开发者可以根据需要修改这些属性来满足特定应用的需求。这些属性主要包括以下几类: 1. **框架配置**: - **...

    Struts2零配置

    在传统的Struts2应用中,开发者需要在多个XML文件中配置Action、结果页面、拦截器等,而“零配置”则是对这种繁琐配置的优化。 **一、Struts2框架基础** Struts2是一个基于MVC(Model-View-Controller)设计模式的...

    Struts2 in action(struts2实战)

    作为一个基于Action和基于拦截器的框架,Struts2提供了丰富的功能,使得开发者能够构建可维护、可扩展的Web应用。下面我们将深入探讨Struts2的主要特性、工作原理以及如何在实际开发中运用。 1. **核心概念**: - ...

Global site tag (gtag.js) - Google Analytics