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

有時(shí)候在做struts2的返回頁面時(shí),不想讓sitemesh裝飾action所返回的某個(gè)特定的頁面,比如:錯(cuò)誤頁面或者我們自己寫的404頁面。因?yàn)閟itemesh是根據(jù)url來判斷是否裝飾的,如果你提交上去的action已經(jīng)裝飾了,那么這個(gè)action返回回來的result頁面,自然就也會(huì)被裝飾,因?yàn)榇藭r(shí)地址欄的url沒有變化。如果我們此時(shí)不想裝飾返回的某個(gè)頁面時(shí),可以有以下解決方案:(有關(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"屬性值一樣。好了,配置完了,試試吧,肯定不會(huì)再被裝飾了,_。。。
除了上面的解決方案之外,根據(jù)網(wǎng)友的提示,貌似在action中設(shè)置result的type="redirect"也可以,不過我沒試,有興趣的可以試試,呵呵。。謝謝大家,第一次發(fā)稿,請多指教。。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容