首页 新闻 赞助 找找看

struts2注解中的@ParentPackage如何覆盖默认规则呢?

0
悬赏园豆:15 [待解决问题]
<pre>有action如下&nbsp;<br /><br /><br />package org.fet.test.action;&nbsp;<br /><br />import org.apache.struts2.convention.annotation.ParentPackage;&nbsp;<br /><br />import com.opensymphony.xwork2.ActionSupport;&nbsp;<br />@ParentPackage("main")&nbsp;<br />public class MainAction extends ActionSupport {&nbsp;<br /><br />/**&nbsp;<br />*&nbsp;<br />*/&nbsp;<br />private static final long serialVersionUID = 1L;&nbsp;<br /><br />public String execute() {&nbsp;<br />System.out.println("==========");&nbsp;<br />return "test";&nbsp;<br />}&nbsp;<br />}&nbsp;<br /><br /><br /><br />struts.xml配置文件如下:&nbsp;<br /><br />&lt;package name="main" extends="struts-default" namespace="/maina"&gt;&lt;/package&gt;&nbsp;<br /><br /><br />通过地址 http://127.0.0.1:8080/t/maina/main.action&nbsp; 访问是找的默认视图为:WEB-INF/content/main-test.jsp&nbsp;<br />而且这个namespace="/maina"名称空间好像没用,输入http://127.0.0.1:8080/t/maadsfinadsfa/main.action&nbsp; 也是在寻找视图为:WEB-INF/content/main-test.jsp&nbsp;<br /><br /><br />既然action继承了 名为main的package,那么就应该使用namespace 为maina,视图也应该是WEB-INF/content/maina/main-test.jsp,&nbsp;<br />可现在不是,为什么呢,如果把包名改成org.fet.test.action.maina,视图就是WEB-INF/content/maina/main-test.jsp,而我现在不想改包名,该如何解决呢》??<br /></pre>
wangdj20010的主页 wangdj20010 | 初学一级 | 园豆:185
提问于:2011-02-12 18:10
< >
分享
所有回答(3)
0

@ParentPackage("main") 

你指定了parent package但是你没有指定namespace,如果想覆盖namespace要指定一个namespace

akunamotata | 园豆:235 (菜鸟二级) | 2011-03-02 13:24
0

楼主遇上的这个问题 也困扰了我半天。其实都这是我们的包名命名不规范造成的或者说不是符合plug的规范导致的。如果在类中声明命名空间会造成在parentpackage中定义的配置不会传递过来。

jokeit | 园豆:205 (菜鸟二级) | 2011-08-28 03:48
0

namespace  之间  这么写  

<package name="" extends="struts-default"  namespace="/"> 
   <result name=""></result>
</package> 

我平时就这么些的   你参考下

努力的蜗牛 | 园豆:202 (菜鸟二级) | 2012-06-15 16:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册