0

目前我使用简单的 JSP 和 servlet 开发的项目有以下包

1-Business package (Contains summed up methods from service package under a business rule)
2-Service package  (Contains different services and their implementation - along with factory
                     method to call a specific implementation of each service)
3-Controller package (All the servlet controls ..)
3-Views              (All the jsps)
4-CustomTags         (Contain the Custom Tags)
5-Domain             (Contains Domain objects)

现在我计划使用 struts2 实现相同的项目,你能告诉我应该引入哪些包吗?我知道服务和业务包将保持不变,控制器包呢?我应该将所有动作都放在控制器包中吗?任何建议将不胜感激。

4

2 回答 2

2

不要根据他们的类型来组织你所有的课程,他们应该与他们的直接合作者一起组织或分组。如果可以,请将 XAction 和 XController 放在同一个包中。将 XAction 与 49 个其他动作放在一个单独的包中是很愚蠢的,这些动作实际上没有关系,而它的控制器在其他地方。

如果您将协作者组合在同一个包中,则很容易了解工作组,并且相当有信心改变一个可能会影响另一个。根据您的原始建议,谁真正知道什么 Action 与什么 Controller 一起使用等等。

于 2012-06-12T10:07:13.883 回答
0

有可能!Struts 从 2.0 到 2.3.x(我使用了这些版本),如果你使用注解 struts2-convention-plugin.jar 依赖,你可以这样做:

在此处输入图像描述

包默认值(通常是 zx.yz.actions)映射了项目上的所有操作,它是上图中的包命名空间。

当您创建一个新的包内部 Actions 包时,例如 zx.yz.actions.example,您将在应用程序中创建一个新的命名空间 /servletContext/example。

要禁用它,您只需在“Action()”注释方法之前放置一个“/”。例如:

    public class ExampleAction {

      @Action(value="/example", 
        @Result(name="ok", type="httpheader", params={"status", "200"})
      public String execute() {
      }
    }

'/example' 中的 '/' 将放入 de 命名空间默认值。

于 2020-05-01T17:17:36.043 回答