正如我所看到的,Struts 2中的action类有多重职责。
首先,我们经常将验证逻辑放在动作类的验证方法中。 因此,当验证逻辑发生变化时,我们必须打开要修改的类。
其次,action类负责使jsp文件使用结果。因此,当我们打算修改视图时,我们经常需要一起修改动作类和jsp。
第三,行动课必须了解其他课程。用于运行业务逻辑并知道如何处理返回结果的API。
最后,动作类的代码变得一团糟。 有没有更好的方法来使动作类干净? 或者有一本书教授如何编写干净的动作类代码?
答案 0 :(得分:0)
动作类是一个简单的POJO。您可以根据需要进行清理,只需要实现Action
interface。
处理程序类的默认入口方法由
Action
接口定义。
Action
界面:public interface Action { public String execute() throws Exception; }
答案 1 :(得分:0)
首先,我们经常将验证逻辑放在动作类的验证方法中。因此,当验证逻辑发生变化时,我们必须打开要修改的类。
这是你的选择,但我不会。通常,验证逻辑应该通过XML配置来处理。如果你有复杂的验证逻辑,它应该在它自己的处理程序中被隔离,然后用作自定义验证器或由validate
中的薄层调用。
S2动作是Web层和业务逻辑之间的胶合代码 - 这包括验证。
其次,action类负责使jsp文件使用结果。因此,当我们打算修改视图时,我们经常需要一起修改动作类和jsp。
操作类可以用作业务层和视图层之间的DTO,或者您可以使用单独的实体并使用该操作仅公开该DTO。这几乎无论如何都是必要的,该行动充当请求和响应之间的薄层。你如何选择组织它取决于你。
好的,是的。请求和业务逻辑之间的任何东西都需要知道该怎么做。也就是说,它不会拥有,它只能将数据从请求传输到业务逻辑。映射到业务逻辑根本不需要硬编码。第三,行动课必须了解其他课程。用于运行业务逻辑并知道如何处理返回结果的API。
最后,动作类的代码变得一团糟。
那是你的错,而不是S2。