使用Struts2时 如果将所有页面的请求用同一个Action响应

2025-02-01 15:37:51
推荐回答(3个)
回答1:

所有请求共用一个Action不太现实,一般是相关的在一起,如

public class UserAction {
    private String username;
    private String password;
    private String password2;

    public void validateLogin();
    public String login();
    
    public void validateRegister();
    public String register();
}
public class ItemAction {
    private Long itemId;
    private Item item;

    public void validateGet();
    public String get();
    
    public void validateAdd();
    public String add();
    
    public void validateUpdate();
    public String update();
    
    public void validateDelete();
    public String delete();
}

不过我现在是每个请求都在单独的Action中,因为部分成员变量会互相干扰。

而我又比较习惯保持代码整洁。

回答2:

以前用过很多请求调用一个action的方法,这种方法存在弊端:代码多了后,不容易维护!好处当然是有的,就是action类相对少了很多。
但是,我建议用一个action做一个处理,没个action类都写好注释,好处那当然是:代码容易维护,结构清晰,缺点就是开发的时候稍微用点时间创建类以及配置。

当然磨刀不误砍柴工,我推荐第二种。

回答3:

一般开发时会把相关的功能按模块放到同一个模块action里,通过访问不同的方法名来处理相应请求。这样会缩减代码量,节省开发时间。分开写会是action类大量重复编写,造成代码冗余,而且调试时也不方便寻找。集成到一个action里,注意正确配置访问就行了。两种配置方式的运行速度哪个快就不好说了,没测试过。