關(guān)于sitemesh不裝飾struts2中action返回頁面解決方案

有時候在做struts2的返回頁面時,不想讓sitemesh裝飾action所返回的某個特定的頁面,比如:錯誤頁面或者我們自己寫的404頁面。因?yàn)閟itemesh是根據(jù)url來判斷是否裝飾的,如果你提交上去的action已經(jīng)裝飾了,那么這個action返回回來的result頁面,自然就也會被裝飾,因?yàn)榇藭r地址欄的url沒有變化。如果我們此時不想裝飾返回的某個頁面時,可以有以下解決方案:(有關(guān)sitemesh配置文件我就不做說明了,網(wǎng)上一大堆,呵呵_..以下是部分配置說明):

struts.xml部分配置

<action name="toIndex" class="indexAction" method="toIndex">  
        <result name="index">/main.jsp</result>   
        <result name="error">/error.jsp</result>  
</action>

如果我們不想對上面的error.jsp做裝飾,那么我們要在error.jsp頁面的<head>里加一句meta:

  <head>  
    <!-- 不讓sitemesh裝飾此頁面 :content="none"表示在decorators.xml里面的name="none"的裝飾器 -->  
    <meta name="decorator" content="none"/>  
    <title>異常頁面</title>  
  </head>  

然后再在decorators.xml中配置一下:

<decorators defaultdir="/layout">  
    <decorator name="none">  
        <pattern>/error.jsp*</pattern>  
    </decorator>  
</decorators>  

注意:上面的name="none"要和error.jsp頁面中的meta "content"屬性值一樣。好了,配置完了,試試吧,肯定不會再被裝飾了,_。。。
除了上面的解決方案之外,根據(jù)網(wǎng)友的提示,貌似在action中設(shè)置result的type="redirect"也可以,不過我沒試,有興趣的可以試試,呵呵。。謝謝大家,第一次發(fā)稿,請多指教。。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容