那么就可以直接使用http://localhost:8080/xxx/xxxAction!add 直接调用xxxAction中的add方法了,并且在struts.xml中的action配置中,就不需要配置method属性的值了。这样做就解决了写死method值的问题
通配符的使用
这个比较重要,使用的比较多,即, , action.name可以使用通配符星号(*),在action.class、aciton.method、result.name 处可以使用{n}方式匹配星号,举个例子就明白了
案例一: 在action.class、action.method、result.name三个地方可以使用{1}来获取第一个星号所匹配的内容
请求路径:..../userAction_add 那么{1}拿到的内容则是add,将执行add方法
案例二: {1}匹配第一个* {2}匹配第二个*
请求路径 :.../userAction_add_success
{1}匹配add方法,{2}匹配返回值的名称success
案例三:使用*_*_*,通过{1}{2}{3}获得,可以自己尝试。
注意:package.namaspace的特点,当namespace为"/a"时,正常通过/a/xxxAction就能访问到,但是如果/a/b/c/xxxAction是否能访问到呢?答案是YES,因为会一层一层往下找,什么意思呢?
http://localhost:8080/xxx/a/b/c/xxxAction 找不到,往下一层找
http://localhost:8080/xxx/a/b/xxxAction 找,也找不到,继续往下
http://localhost:8080/xxx/a/xxxAction 我们这里配置的namespace为"/a",所以就找到了,如果我们namespace="/",那么/a/b/c/xxxAction就访问不到了,只有/xxxAction能访问到。但是如果namespace="",那就找得到,什么都不写的意思是不管什么路径都能匹配到。