【问题标题】:Spring MVC & Tiles integrationSpring MVC 和 Tiles 集成
【发布时间】:2011-04-20 07:31:42
【问题描述】:

首先我知道 Spring MVC 与 Tiles 有很好的集成。但我的问题如下:

我已将 web.xml 配置为

<servlet>
    <description>Spring Dispatcher Servlet</description>
    <servlet-name>Dispatcher</servlet-name>
    <servlet-class>
        org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>Dispatcher</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

而我的 Dispatcher-servlet.xml 配置如下:

<bean class="org.springframework.web.servlet.view.tiles2.TilesConfigurer"> 
    <property name="definitions">
        <list>
            <value>
                /WEB-INF/tiles-defs/base-layout.xml
            </value>
            <value>
                /WEB-INF/tiles-defs/application-layout.xml
            </value>
        </list>
    </property> 
</bean>

<bean id="tilesViewResolver" 
            class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    <property name="viewClass" 
            value="org.springframework.web.servlet.view.tiles2.TilesView" />
    <property name="order" value="1" />
</bean>

请注意,Dispatcher servlet 被映射为处理所有请求。我不想以某种方式对其进行配置,使其只能处理特定请求,例如 *.hmtl 或 *.do 或 *.form 因为我希望我的 URL 整洁,这是一个要求。

我有如下图块定义

<tiles-definitions>

    <definition name="publicLayout" .
            template="/WEB-INF/tiles-layouts/publicLayout.jsp">
        <put-attribute name="title" value="Home Page" />
        <put-attribute name="body" value="" />
    </definition>

    <definition name="home" extends="publicLayout">
        <put-attribute name="body" value="/WEB-INF/jsp/home.jsp" />
    </definition>

</tiles-definitions>

现在,当我发出 HTTP 请求以说出 URL“http://localhost:8080/myapp/home”时,使用请求映射“/home”映射的带注释的控制器处理请求并最终返回带有视图的 ModelAndView命名为“家”。

最后,当调度程序 servlet 尝试呈现它说的页面时

找不到带有 URI 的 HTTP 请求的映射 [/myapp/WEB-INF/tiles-layouts/publicLayout.jsp]

但是当我将调度程序 servlet 映射更改为 *.html 时,它工作正常,我不想这样做。

这里可以做什么.??我认为这是一个非常普遍的问题。

【问题讨论】:

    标签: spring-mvc tiles tiles2


    【解决方案1】:

    要处理除您需要使用的 JSP 请求之外的所有请求

    <url-pattern>/</url-pattern>
    

    【讨论】:

      猜你喜欢
      • 2012-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多