Struts2笔记之包的命名空间有什么意义
struts2 的配置文件 struts.xml
里面有一个标签是
<package>
这个标签有个属性 namespace
这个属性的意义在于,处理同一个Web应用中包含同名Action的情形。Strtuts2以命名空间的方式来管理Action。
这样的话我们避免了有的时候出现的action同名的需要,但是业务的处理需求又不相同。因此,我们可以利用namespace来达到这样的效果。这样即便有同名的action但是包名不同,使得最后接受业务处理的action也是不同的。类似于高三(1)班的1号同学和高三(2)班的1号同学 虽然两个同学的座号相同。但是通过不同的班名我们依然可以辨别出具体的同学。大概就是这样
这与java中package的作用是相同的。
注:如果配置的时候没有为<package /> 配置指定的 namespace 属性,则该包下的所有Action处于默认的包空间下
Struts2笔记之配置变量
struts.enable.SlashesInActionNames
如果action的name属性中需要包含斜线/则需要将这个变量设置为true
struts.enable.DynamicMethodInvocation
当这个配置变量设置为true的时候支持action的动态方法。即允许一个action配置多个业务请求
action的name 中包含点或中划号导致错误
虽然Action 的 name 命名可以非常灵活,但如果为 name 属性分配一个带点的(.)或者带中划线(-)的值
例如 my.user 或者 my-action等,则可能引发一些未知异常。因此不推荐在Action的name属性值中使用点(.)和中划线(-).
片段摘自:轻量级 J2EE 企业应用实战 P186