2017-07-26 95 views
1

everyone。 我對struts2命名空間有問題。如何忽略struts2中的默認命名空間

首先,這是我的開發環境。 服務器:tomcat的 (目前我的項目是ROOT文件夾中/tomcat/webapps/ROOT) 框架:Struts2的

這裏是我的問題。 可以說有兩頁。 admin_index.jsp和front_index.jsp 當我想從操作調用admin_index.jsp。我使用

<package name="admin" namespace="/dl_adm" extends="struts-default"> 
 
    <action name="/index" method="index"class="kr.co.www2.controller.front.AdminMainController"> 
 
     <result name="success">/WEB-INF/jsp/admin/admin_index.jsp</result> 
 
    </action> 
 
</package>

,並通過調用http://.../dl_adm/index.do

工作正常,並把這種有問題對我來說。

<package name="front" namespace="/" extends="struts-default"> 
 
    <action name="/index" method="index"class="kr.co.www2.controller.front.FrontMainController"> 
 
     <result name="success">/WEB-INF/jsp/admin/front_index.jsp</result> 
 
    </action> 
 
</package>

當我去的http://.../index.do,它給404 ...

雖然我知道namespace="/"是默認命名空間...

問題:

  1. 是否有忽略默認命名空間?因爲我想使用/,因爲我只想通過http://.../和沒有名稱空間的動作名稱...

  2. 或者如果沒有辦法做到這一點。有什麼建議麼?

回答

1
  1. 反正是有忽略默認命名空間?因爲我想使用/因爲我只是想通過http://.../和動作名稱命名空間不..

不,你不能忽視的默認命名空間。默認名稱空間爲空,如果在包聲明中省略namespace屬性,則使用它。


  • 或者如果有一個心不是方法來做到這一點。有什麼建議麼?
  • 我不會在使用xml配置的操作名稱中使用斜槓。動作映射器可能會錯誤地向動作名稱添加一個額外的斜槓來推斷來自URL的映射。


    所以,你應該用

    <package name="front" namespace="/" extends="struts-default"> 
        <action name="index" method="index"class="kr.co.www2.controller.front.FrontMainController"> 
         <result name="success">/WEB-INF/jsp/admin/front_index.jsp</result> 
        </action> 
    </package> 
    
    +0

    OK,然後我將不得不改變jsp和actionclass的所有動作的名稱。好,謝謝:) –