java之struts2的action优化配置
当一个Action处理类中处理多个业务时,action的配置 文件将会急剧增加,导致配置文件很臃肿的问题。
struts2提供了两种方案来解决这个问题。一种是动态方法调用,另一种是使用通配符来配置Action。
这里只讲使用通配符的方式来配置Action.
代码如下:
UserAction
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
<!-- *表示匹配所有请求的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的方式和以前一样