2 shuizhongjiete shuizhongjiete 于 2016.09.25 13:55 提问

struts2的convention的路径映射问题

图片说明
如图,在这3个包里都定义了LoginAction,都继承自ActionSupport。
在form的action的url里这么写的:
图片说明
我的本意是想访问action.cs包里的那个action。但实际上,它访问的是action.cs.fox包里的action。这是为什么?
而且,更奇怪的是,就算我是下面这几种写法,也都是访问的action.cs.fox包里的action.
图片说明
图片说明
这个怎么解???
请高手解惑,不胜感激。新手没有币,以后有币了一定补上。谢谢!

1个回答

Ro_bot
Ro_bot   2016.09.25 17:55
已采纳

路径映射的是struts.xml(一般是这个名字)文件里的<package>标签的namespace属性+<action>标签的name属性

shuizhongjiete
shuizhongjiete 回复R0bot: 总之,跟链接里说的映射结果不一样!你可以试试。
大约一年之前 回复
shuizhongjiete
shuizhongjiete 回复R0bot: 你留个qq吧,我把项目代码发给你,你部署了之后试试看。我在eclipse和myeclipse里都试了,结果一样。
大约一年之前 回复
Ro_bot
Ro_bot 回复shuizhongjiete: 没有代码看不出哪里异常,不过你可以看看这篇文章。http://www.chinadmd.com/file/eptuvzxcxoeiacz6uwrsx6zz_1.html
大约一年之前 回复
shuizhongjiete
shuizhongjiete 谢谢你的回答。但是Convention是优先于struts.xml配置的,所以这里不用考虑struts.xml吧? 到处查资料,都是说convention会把action映射成根命名空间/,把action里的包结构映射成对应的命名空间,比如我这里的action.cs.LoginAction映射成/cs/login.action。 这么说的话,命名空间和路径之间又是怎么转化的呢?难道不是/cs/login.action对应到http:localhost:8080/webname/cs/login.action?
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片