当一个Action处理类中处理多个业务时,action的配置 文件将会急剧增加,导致配置文件很臃肿的问题。
struts2提供了两种方案来解决这个问题。一种是动态方法调用,另一种是使用通配符来配置Action。
这里只讲使用通配符的方式来配置Action.
代码如下:
UserAction
代码语言:javascript复制public class UserAction {
private Integer id;
private String name;
private String sex;
private int age;
private String phone;
private UserDao userDao = new UserDaoImpl();
//这个List必须为处理类的属性 才可以在列表页面中获取数据 如果只是在方法的内部声明将无法获取
//并且提供其get/set方法
private List<User> list;
private User user;
//添加
public String save(){
User user = new User(name,age,sex,phone);
if(userDao.save(user)>0){
return Action.SUCCESS;
}
return Action.ERROR;
}
//修改
public String update(){
User user = new User(id,name,age,sex,phone);
if(userDao.update(user)>0){
return Action.SUCCESS;
}
return Action.ERROR;
}
//查询
public String list(){
list = userDao.findAll();
//return Action.SUCCESS;
return "list";
}
//删除
public String delete(){
if(userDao.delete(id)>0){
return Action.SUCCESS;
}
return Action.ERROR;
}
//获取指定对象
public String toUpdate(){
user = userDao.findById(id);
//return Action.SUCCESS;
return "update";
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public List<User> getList() {
return list;
}
public void setList(List<User> list) {
this.list = list;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
struts.xml
代码语言:javascript复制 <!--
*表示匹配所有请求的action名 *表示匹配任意多个字符
{1}表示匹配第一个*所代表的内容
如:*User 可以匹配 addUser,deleteUser,saveUser,findUser,updateUser,*表示User前的字符
*_* 可以匹配 add_user这样的请求
-->
<action name="*" class="cn.sxt.action.UserAction" method="{1}">
<result type="redirectAction">list</result>
<result name="list">/list.jsp</result>
<result name="update">/update.jsp</result>
<result name="error">/error.jsp</result>
</action>
注意:使用通配符请求action的方式和以前一样