一个类为com.lusoft.sdust.test.action.first.LoginAction 
一个类为com.lusoft.sdust.test1.action.first.LoginAction 
这样这两个不同包下Action都会被映射为/first/login.action 其中访问的时候就有问题,只能访问到其中的一个,应该是把另一个给覆盖了,这样的问题怎么解决呢。

解决方案 »

  1.   

    用convention插件实现action的注解配置,省去了struts.xml里面的配置,引入struts2-convention-plugin-2.2.1.jar后,它会自动搜索位于action、actions、struts、struts2包下的所以java类,Convetntion插件会把两种情况下的Java类当成Action来处理。 
    a、所有实现了com.opensymphony.xwork2.Action或继承了ActionSupport的Java类。 
    b、所以类名以Action结尾的java类。 
    com.neusoft.action.logins.LonginAction 
    Action路径将会映射为:/logins/login.action,logins将会作为命名空间。 
    以此类推到其它几个包下面。 
    这样的话
    一个类为com.lusoft.sdust.test.action.first.LoginAction  
    一个类为com.lusoft.sdust.test1.action.first.LoginAction  
    这样这两个不同包下Action都会被映射为/first/login.action 其中访问的时候就有问题,只能访问到其中的一个,应该是把另一个给覆盖了,这样的问题怎么解决呢
      

  2.   

    你是不是将action的name值配置成一样的了,那样的话肯定要被覆盖的了,你的类是不同的,访问的方式也不同,
      

  3.   

    访问的方式按照conventiion的约定,都是/first/login.action,
    一个类为com.lusoft.sdust.test.action.first.LoginAction   
    一个类为com.lusoft.sdust.test1.action.first.LoginAction  
    是按红色部分映射的,虽然包名不同但会映射为同一action.