美文网首页
关于sitemesh不装饰struts2中action返回页面解

关于sitemesh不装饰struts2中action返回页面解

作者: 0xkevin | 来源:发表于2017-08-01 17:10 被阅读0次

有时候在做struts2的返回页面时,不想让sitemesh装饰action所返回的某个特定的页面,比如:错误页面或者我们自己写的404页面。因为sitemesh是根据url来判断是否装饰的,如果你提交上去的action已经装饰了,那么这个action返回回来的result页面,自然就也会被装饰,因为此时地址栏的url没有变化。如果我们此时不想装饰返回的某个页面时,可以有以下解决方案:(有关sitemesh配置文件我就不做说明了,网上一大堆,呵呵_..以下是部分配置说明):

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"属性值一样。好了,配置完了,试试吧,肯定不会再被装饰了,_。。。
除了上面的解决方案之外,根据网友的提示,貌似在action中设置result的type="redirect"也可以,不过我没试,有兴趣的可以试试,呵呵。。谢谢大家,第一次发稿,请多指教。。

相关文章

网友评论

      本文标题:关于sitemesh不装饰struts2中action返回页面解

      本文链接:https://www.haomeiwen.com/subject/erajlxtx.html