2011-02-04 78 views
0

我使用Tiles 2和Spring 3.05。我想將jsp文件映射到控制器,例如瓷磚2,JSP的映射

<servlet-mapping> 
     <servlet-name>dispatcher</servlet-name> 
     <url-pattern>*.html</url-pattern> 
     <url-pattern>*.jsp</url-pattern> 
</servlet-mapping> 

當我這樣做,我得到 「[WARN] org.springframework.web.servlet.PageNotFound [無映射發現HTTP請求的URI與[/ WEB-INF/*的.jsp]」 爲所有瓷磚。

如何我可以從Servlet映射排除瓷磚(從WEB-INF中)?或者我可以明確地將這些文件映射到tile servlet?

+0

爲什麼要映射jsp文件到控制器?另請參閱http://stackoverflow.com/questions/2764636/how-can-i-map-a-spring-controller-to-a-url-with-jsp-extension – Ritesh 2011-02-04 13:17:52

回答

0

而是在web.xml這樣做的,你應該在你的context文件中配置它。該說明可在春季docs獲得。

0

願這sippet我春天的context.xml有助於你建立你的配置。 它是基於這樣的事實,主要存在兩種瓷磚的配置文件:

  • /WEB-INF/layouts/tiles-layouts.xml包含瓷磚佈局definitin
  • /WEB-INF/JSP /controllers/**/views.xml是結合的觀點和jsp

    <bean id="viewResolver" 
         class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
         <property name="requestContextAttribute" value="requestContext" /> 
         <property name="viewClass" 
           value="org.springframework.web.servlet.view.tiles2.TilesView" /> 
    </bean> 
    
    <!-- Configure Apache Tiles for the view --> 
    <bean id="tilesConfigurer" 
         class="org.springframework.web.servlet.view.tiles2.TilesConfigurer"> 
         <property name="definitions"> 
           <list> 
             <value>/WEB-INF/layouts/tiles-layouts.xml</value> 
             <value>/WEB-INF/jsp/controllers/**/views.xml</value>       
           </list> 
         </property> 
    </bean> 
    

其中/WEB-INF/jsp/controllers/**/views.xml文件的幾個文件:

<tiles-definitions> 

    <!-- Pages --> 
    <definition name="site/list" extends="standard-layout"> 
      <put-attribute name="title" value="List Sites" /> 
      <put-attribute name="body" value="/WEB-INF/jsp/controllers/site/list.jsp" /> 
    </definition> 
    <definition name="site/show" extends="standard-breadcrumb-layout"> 
      <put-attribute name="title" value="Show Site" /> 
      <put-attribute name="breadcrumbNavigation" value="/WEB-INF/layouts/siteBreadcrumbNavigation.jsp" /> 
      <put-attribute name="body" value="/WEB-INF/jsp/controllers/site/show.jsp" /> 
    </definition> 
    <definition name="site/create" extends="standard-layout"> 
      <put-attribute name="title" value="Create Site" /> 
      <put-attribute name="body" value="/WEB-INF/jsp/controllers/site/create.jsp" /> 
    </definition> 
    <definition name="site/update" extends="standard-layout"> 
      <put-attribute name="title" value="Update Site" /> 
      <put-attribute name="body" value="/WEB-INF/jsp/controllers/site/update.jsp" /> 
    </definition> 

</tiles-definitions>