struts2中的Action默认执行方法为execute(),尽管可以通过<action name="addUser" class="addUser" method="doFun">设置默认执行方法,但也难以改变一个<action>一个方法的窘境。
那么,一个Action中多个方法,如何配置呢?
先上方法,简单举例:用户管理
UserManagerAction.java
- public class UserManagerAction extends ActionSupport implements RequestAware {
- private User user;
- @Resource
- private UserManager userManager;
- private Map<String, Object> request;
- @Override
- public void setRequest(Map<String, Object> request) {
- this.request = request;
- }
- public User getUser() {
- return user;
- }
- public void setUser(User user) {
- this.user = user;
- }
- public String addUser() throws Exception {
- System.out.println("-----UserManagerAction.addUser()-----");
- userManager.addUser(user);
- return "success";
- }
- public String modifyUser() {
- System.out.println("-----UserManagerAction.modifyUser()-----");
- userManager.modifyUser(user);
- return "success";
- }
- public String delUser() {
- System.out.println("-----UserManagerAction.delUser()-----");
- userManager.delUser(user.getUsername());
- return "success";
- }
- public String queryUser() {
- System.out.println("-----UserManagerAction.queryUser()-----");
- User user1 = userManager.queryUser(user.getUsername());
- request.put("user1", user1);
- return "success";
- }
- public String queryAllUser() {
- System.out.println("-----UserManagerAction.queryAllUser()-----");
- List<User> userList = userManager.queryAllUser();
- request.put("userList", userList);
- return "success";
- }
- }
struts.xml配置,一个Action处理多个请求的配置
1.第一种方法:多个<action>标签,设置不同的method属性
- <package name="userManager" namespace="/user" extends="struts-default">
- <action name="addUser" class="com.ys.action.UserManagerAction" method="addUser" />
- <action name="modifyUser" class="com.ys.action.UserManagerAction" method="modifyUser" />
- <action name="delUser" class="com.ys.action.UserManagerAction" method="delUser" />
- </package>
2.第二种方法:采用!的方式访问请求,例如:user/userManager!addUser
- <package name="userManager" namespace="/user" extends="struts-default">
- <action name="userManager" class="com.ys.action.UserManagerAction">
- <result name="success">/success.jsp</result>
- <result name="error" type="redirect">/error.jsp</result>
- </action>
- </package>
*.jsp页面请求如:myForm.action = "user/userManager!addUser";
3.第三种方法:采用通配符的方式(推荐)
- <package name="userManager" namespace="/user" extends="struts-default">
- <action name="*User_*" class="UserManagerAction" method="{1}User">
- <result name="success">/{2}.jsp</result>
- <result name="error" type="redirect">/error.jsp</result>
- </action>
- </package>
({1}匹配第一个*,{2}匹配第二个*)
*.jsp页面请求如:myForm.action = "user/addUser_success";
相关推荐
默认情况下,一个Action类对应一个请求URL,但通过特定配置,可以让一个Action处理多个请求。 1. **配置Action映射** 在`struts.xml`文件中,我们可以使用`<action>`元素来定义Action的映射。如果希望一个Action...
在Struts2框架中,处理多个请求的方法是通过一个Action类实现多个处理方法。这使得代码结构更加清晰,每个方法对应特定的业务逻辑。以下是Struts2处理多个请求的三种主要方式的详细说明: 1. **动态方法调用 (DMI -...
1. `@Action`: 这是Struts 2中最核心的注解,用于标记一个方法为处理请求的Action。你可以指定Action的名字、结果页面和其他属性。例如: ```java @Action(value = "myAction", results = { @Result(name = ...
在Struts2框架中,有多个重要的配置文件用于控制应用的行为与结构,其中最核心的是`struts.xml`文件。此外还包括`web.xml`、`struts.properties`、`struts-default.xml`等。 - **web.xml**:它是Web应用的部署描述...
总结来说,Struts2的Action多方法配置使得我们能够灵活地组织业务逻辑,而其内置的验证机制则确保了数据的准确性和安全性。通过深入理解并熟练运用这些特性,开发者可以创建出高效、健壮的Java web应用。
在`struts.xml`中,一个Action配置通常由`<action>`元素定义,包含了多个属性,如`name`、`class`、`method`等。 `name`属性用于定义Action的唯一标识,它在请求URL中出现,用于区分不同的Action。例如: ```xml ...
- 为了确保请求的正确编码,可以在web应用的过滤器(Filter)中进行强制转换,比如添加一个字符编码过滤器(CharacterEncodingFilter),并配置为在请求进入Action之前先进行编码转换。 3. **Action类的参数注解**...
Struts2是一个强大的MVC(Model-View-Controller)框架,用于构建企业级的Java Web应用程序。它在Java社区中广泛使用,因其灵活性、可扩展性和丰富的插件库而受到青睐。本文将深入探讨Struts2配置文件的核心概念及其...
总结,Struts2配置涉及多个方面,包括核心库的引入、配置文件的编写、Action、Result、Interceptor的定义以及与Spring的整合等。通过合理配置,可以构建出高效、灵活的Web应用。在实际项目中,应根据需求调整和优化...
5. **package配置文件**:除了`struts.xml`外,开发者还可以创建多个包(package)配置文件,以实现模块化的配置。这些文件可以放在`struts.xml`中引入,也可以通过`<include file="..."/>`标签进行引入。 加载顺序...
**ActionMethod**是一种在同一个Action类中实现多个方法的能力。例如,在`UserAction`类中,可以通过不同的URL参数来调用不同的方法: ```java public class UserAction extends ActionSupport { public String ...
这里定义了一个名为 `login` 的 Action,当表单提交到 `/login.action` 时,Struts2 将会调用 `action.LoginAction` 类来处理这个请求。如果 `LoginAction` 返回 `"success"`,那么根据配置的 `redirect-action` ...
总之,手动配置Struts2涉及多个层面,包括库的添加、核心配置文件的编写、web.xml的过滤器配置、Action的编写以及插件的使用。理解并熟练掌握这些配置,将有助于我们更好地利用Struts2框架构建高效、可扩展的Java ...
在Struts2中,Action类继承自`ActionSupport`或者自定义的Action基类,包含一个或多个处理请求的方法。通过`execute`方法或其他自定义方法来响应用户请求,每个方法对应一个业务逻辑。Action的执行结果通过`Result`...
在Struts2的配置文件(通常是struts.xml)中,你需要为你的Action添加一个或多个action配置,指定处理文件上传的result类型。Struts2提供了一个特殊的`stream`结果类型,用于处理文件上传: ```xml <action name...
但是,通过`method`属性,我们可以指定不同的方法对应不同的Action,这样可以实现一个类中多个方法的映射,提高代码复用性。例如: ```xml <action name="add" class=...
- `struts.action.extension`定义了Struts2处理的请求后缀,默认是`action`,可以添加多个后缀,如`do, action,`。 - `struts.serve.static.browserCache`控制静态内容是否被浏览器缓存,`false`表示开发阶段禁用...
`struts.properties` 文件是Struts2框架的另一个核心配置文件,它主要用于定义框架本身的大量属性,开发者可以根据需要修改这些属性来满足特定应用的需求。这些属性主要包括以下几类: 1. **框架配置**: - **...
在传统的Struts2应用中,开发者需要在多个XML文件中配置Action、结果页面、拦截器等,而“零配置”则是对这种繁琐配置的优化。 **一、Struts2框架基础** Struts2是一个基于MVC(Model-View-Controller)设计模式的...
作为一个基于Action和基于拦截器的框架,Struts2提供了丰富的功能,使得开发者能够构建可维护、可扩展的Web应用。下面我们将深入探讨Struts2的主要特性、工作原理以及如何在实际开发中运用。 1. **核心概念**: - ...