您的位置:首页 > 编程语言 > Java开发

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

2013-07-29 22:02 573 查看
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";
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐