2012-05-05 2 views
1

Я реализую sitemesh3 в своем проекте MVC весной и получаю исключение 404. Я следую этому руководству SiteMesh3, теперь проблема заключается в том, что я помещаю свой jsp внутри Web-Inf в папку «просмотр», поэтому какой путь я должен дать в файле sitemesh3.xml в теге декоратора. Я пытался долго, но gettting 404 при развертывании ....Я реализую sitemesh3 в моем проекте MVC весны и получаю исключение 404

ответ

4

Мне удалось заставить его работать sitemesh3 + spring mvc. Декораторы могут быть размещены внутри WEB-INF без проблем

моя структура каталогов выглядит следующим образом

webapp/WEB-INF$ tree 
. 
├── enable-jmx.xml 
├── lnramirez-servlet.xml 
├── sitemesh3.xml 
├── urlrewrite.xml 
├── views 
│   ├── about.jsp 
│   ├── blog 
│   │   └── list.jsp 
│   ├── defaultdecorator.jsp 
│   └── home.jsp 
└── web.xml 

моя конфигурация sitemesh3

$ cat sitemesh3.xml 
<?xml version="1.0" encoding="MacRoman"?> 
<sitemesh> 
    <mapping path="/*" decorator="/WEB-INF/views/defaultdecorator.jsp"/> 
</sitemesh> 

и мой web.xml

<filter> 
    <filter-name>sitemesh</filter-name> 
    <filter-class>org.sitemesh.config.ConfigurableSiteMeshFilter</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>sitemesh</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

<filter> 
    <filter-name>HiddenMethodFilter</filter-name> 
    <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>HiddenMethodFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

<filter> 
    <filter-name>UrlRewriteFilter</filter-name> 
    <filter-class> 
     org.tuckey.web.filters.urlrewrite.UrlRewriteFilter 
    </filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>UrlRewriteFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

остерегайтесь если вы используете фильтр UrlRewriteFilter, как я, вы можете столкнуться с тем же У меня был. Перед другими фильтрами необходимо разместить ConfigurableSiteMeshFilter.

Он работал для меня

0

это работает для меня:

decorators.xml:

<decorators defaultdir="/WEB-INF/decorators"> 
    <decorator name="login" page="login_master.jsp"> 
     <pattern>/login*</pattern> 
    </decorator> 
    <decorator name="none" page="none.jsp"> 
     <pattern>/report*</pattern> 
    </decorator> 
    <decorator name="master" page="master.jsp"> 
     <pattern>/*</pattern> 
    </decorator> 
</decorators> 

None.jsp:

<html> 
    <head> 
     <title> 
      <decorator:title /> 
     </title> 
     <decorator:head /> 
    </head> 
    <body> 
     <decorator:body /> 
    </body> 
</html> 
+0

Я использую sitemesh3 и я sitemesh3.xml и не decorators.xml – TaherT

+0

вы добавили этот фильтр в web.xml: SiteMesh <фильтра -класс> com.opensymphony.module.sitemesh.filter.PageFilter <фильтр-отображение> SiteMesh /*

+0

Kevin Эта конфигурация для простого sitemesh a nd Я использую sitemesh3, так что это не полезно для меня. Я разместил ссылку в своем вопросе, пожалуйста, обратитесь к этому, чтобы понять мою проблему. – TaherT