0

我在 Spring 3.05 中使用 Tiles 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 [No mapping found for HTTP request with URI [/WEB-INF/ * .jsp]”。

如何从 servlet 映射中排除图块(从 WEB-INF 中)?或者我可以将这些文件显式映射到切片 servlet?

4

2 回答 2

0

愿我的 spring-context.xml 的这个 sippet 可以帮助您构建配置。它基于这样一个事实,即有两种瓦片配置文件:

  • /WEB-INF/layouts/tiles-layouts.xml 包含瓷砖布局定义
  • /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> 
于 2011-02-04T11:04:08.067 回答
0

web.xml您应该在context文件中配置它,而不是在 中执行此操作。说明可在 spring文档中找到。

于 2011-02-04T07:46:06.363 回答