首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Sitemesh3 整合 SpringMVC:轉發頁面不被裝飾的解決

     編輯:程式設計綜合問答

現象

直接訪問 JSP 會被 Sitemesh3 裝飾,但 SpringMVC return "viewName" 轉發後頁面無裝飾。

原因

Sitemesh3 預設攔截 **請求路徑**,而非內部轉發的 JSP 路徑。配置中若寫的是 <pattern>/WEB-INF/views/*.jsp</pattern>,轉發請求的路徑仍是 Controller Mapping(如 /user/list),不匹配而跳過裝飾。

解決

在 sitemesh3.xml 中配置 **Controller 請求路徑模式**,而非 JSP 物理路徑:

<mapping path="/user/*" decorator="/decorators/main.jsp"/>
<mapping path="/admin/*" decorator="/decorators/admin.jsp"/>

驗證

  • 重啟應用,訪問 /user/list 確認裝飾生效。
  • 若仍失效,檢查 web.xml 中 sitemesh Filter 是否設定 <dispatcher>REQUEST</dispatcher><dispatcher>FORWARD</dispatcher>。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved