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的方式和以前一样

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Vincent-yuan

java之struts2之异常处理

1.在应用项目中,异常的出现时很正常的。而且项目上线后发生异常也很正常的。那么需要对这些异常有相应的处理机制,以便客户能够看你到更加友好的界面。Struts2中...

9020
来自专栏Vincent-yuan

java之struts2的配置讲解(2) java之struts框架入门教程

即从结构上可以看出,在HelloStruts项目中增加了config 文件夹(Source Folder) 及user.xml 文件

6520
来自专栏Vincent-yuan

java之struts框架入门教程

后面请求时都会报 "There is no Action mapped for namespace / and action name" 错误

14920
来自专栏小满

struts2框架搭建学习遇到的问题

严重: Dispatcher initialization failed java.lang.RuntimeException: java.lang.refle...

9520
来自专栏Vincent-yuan

java之struts2之文件下载

注意:直接通过超链接下载文件,如果浏览器能够读取文件,浏览器会直接读取,而不会下载到本地。并且有安全问题。所以,可以通过action来实现下载。

8820
来自专栏Vincent-yuan

java之struts2的执行流程讲解(1)

请求--->Tomcat(判读项目是否存在)--->项目的web.xml--->struts2的核心过滤器

9030
来自专栏BAT的乌托邦

【小家java】Stream流操作的有状态 vs 无状态

比如map或者filter会从输入流中获取每一个元素,并且在输出流中得到一个结果,这些操作没有内部状态,称为无状态操作。 但是像reduce、sum、max这...

12020
来自专栏Vincent-yuan

java之struts2之数据检验

1.使用struts2时,有时候需要对数据进行相关的验证。如果对数据的要求比较严格,或对安全性要求比较高时,前端 js 验证还不够,

8020
来自专栏Vincent-yuan

java之struts2之ajax

1.Ajax 技术在现有开发中使用非常多,大多是做管理类型系统。在servlet中可以使用ajax。在struts2中共还可以使用servlet的方式来实现aj...

7340

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励