struts2最佳实践 - 我在哪里放置辅助方法?静态类好吗?

时间:2011-08-04 01:51:54

标签: java model-view-controller struts2

我有一些重复的代码,我在Struts 2中的一些操作使用了这些代码。

毋庸置疑,我希望这段代码只存在于一个地方,所以我会把它收集到一个方法中并把它放在哪里?

最佳做法是什么?我是否为每种类型的辅助方法创建一个辅助类?一个大帮手方法?一个大的静态类?一些静态类?

我正在使用MVC。

我已经在stackoverflow上阅读了其他答案,似乎没有人回答我的问题。

非常感谢你的帮助。

根据要求使用示例更新EDIT:

例如:

我有几行代码在会话中添加了一个arraylist,它存储某个对象被“评级”(对于该会话)。它在整个应用程序中进行了一些操作。

此外,我有一个包含在多个JSP页面上的视图组件,需要从模型中加载一些数据。我需要将代码复制/粘贴到每个动作中(显然想避免这种情况)。

希望澄清一下。如果没有,请告诉我。

2 个答案:

答案 0 :(得分:2)

我的一般规则是,如果方法是计算的,换句话说,如果它们只是执行一个函数(比如数学),我将使用静态方法创建一个类并在整个地方使用它。

我有一个实用程序包,我作为一个带有字符串操作和验证功能的jar包含在我的很多项目中,因为它们很少改变。

字符串验证就是一个很好的例子。我有一个Validation类,我用它来检查null或空字符串并返回一个布尔值。我只是从我的动作类中调用它,如:

if(Validation.string(value)){
      // do magic - huzzah
}

我尝试将实用程序方法分组到类中,特别是如果我在整个地方使用它。它倾向于使我免于重新输入,在类中搜索我曾经有过的好主意,并在需要更新,修改,重载或覆盖时提供单个代码实例。

答案 1 :(得分:1)

对于包含在多个JSP页面中的视图组件和保存到会话的对象,我创建了一个基本操作类和子操作类,以避免重复代码。

public class BaseAction extends ActionSupport implements SessionAware {
    protected Map session;
    protected ResourceBundle rb;
    // common getters for shared view components and common setters
    ...
}

-

public class SubAction extends BaseAction {
   ...