2011-02-04 143 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>