目前,使用简单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实现同一个项目,你能不能告诉我应该介绍哪些软件包。我知道服务和业务包将保持完整的控制器包呢?我应该将所有操作都放在控制器包中吗?任何建议将不胜感激。
答案 0 :(得分:2)
不要根据他们的类型组织所有课程,他们应该与他们的直接合作者一起组织或组合在一起。如果您可以提供帮助,请将XAction和XController放在同一个包中。将XAction放在一个单独的包中,其中49个其他操作与其控制器位于其他地方时没有任何关系,这很愚蠢。
如果您将协作者组合在同一个包中,则很容易了解工作组,并且相当有信心更改工作组可能会影响另一个工作组。根据您的原始建议,谁真正知道哪些Action与Controller等有关。
答案 1 :(得分:0)
有可能! 从2.0到2.3.x的Struts(我使用过这些版本),如果您使用注释struts2-convention-plugin.jar依赖项,则可以执行以下操作:
默认的程序包(通常是zx.yz.actions)将所有Action映射到项目上,它是上图中的程序包名称空间。
当您创建一个新的包内部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”中的“ /”将放入默认的命名空间。