为了账号安全,请及时绑定邮箱和手机立即绑定

您好,求问关于struts2 package name作用!

您好,求问关于struts2 package name作用!

心有法竹 2021-11-03 11:07:39
<package>是用来解决重名的问题,例如当系统的前台和后台都有一个action名叫test,这时就需要用package来区分。前台<package name="front">后台<package name="backed">但是怎样访问呢?如果,两个package的namespace都是/,访问test.action只能访问到第二个package中的action,第一个访问不到。怎么办???如果两个package设置不同的namespace的话,那么package的name属性不是白设置了吗,没意义了啊,倒不如是相同的呢!求讲解!
查看完整描述

2 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

首先更正一点,struts配置文件中的package name属性不是解决重名问题的,而是用来实现继承的,namespace才是用来解决重名的,前台和后台可以这样分<package name="front" namespace="/front" extends="default"> <package name="back" namespace="/back" extends="default">,这样在两个包里都有test Action时在url地址中用/front/test或/back/test就能区分开了,别外继承时用extends="front"就是继承自第一个package(默认继承是default);若是第一个package里面配的有公共的结果集或拦截器,继承者也可以用(当然也可以用action,注意:子包里的action不能与父包中的重名)

查看完整回答
反对 回复 2021-11-06
?
慕标5832272

TA贡献1966条经验 获得超4个赞

<package name ="front" namespace="/front" extends="forecast-global >
<package name ="backed" namespace="/backed" extends="forecast-global>
你的namespace不用/; 在配置一下你的struts.xml;把前后台的请求 区分开不就可以了吗!

查看完整回答
反对 回复 2021-11-06
  • 2 回答
  • 0 关注
  • 442 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信