当前,我的使用简单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实施同一项目,您能告诉我应该介绍哪些软件包。我知道服务和业务包将保持不变,控制器包又如何呢?我应该将所有动作放在控制器包装中吗?任何建议将不胜感激。
请勿根据您的班级类型来组织所有班级,应该将其与直接合作者一起组织或分组。如果可以帮助,请将XAction和XController放在同一包中。愚蠢的将XAction与其他49个与控制器无关的其他动作放在一个单独的程序包中。
如果将协作者分组在同一个程序包中,则很容易了解工作组,并且一定会更有信心地认为,更改一个工作组可能会影响另一个工作组。根据您最初的建议,谁真正知道什么Action可以与哪个Controller一起工作,等等。
有可能!从2.0到2.3.x的Struts(我使用过这些版本),如果您使用注释struts2-convention-plugin.jar依赖项,则可以执行以下操作:
程序包的默认值(通常是zx.yz.actions)映射了项目上的所有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'中的'/',将放在默认的命名空间中。