0
首先我知道Spring MVC與Tiles很好的集成。但我的問題是如下: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>
我的調度-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>
請注意,調度員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://本地主機:8080/MyApp的/家」,以請求 - 映射一個註解控制器映射「/ home」處理請求並最終返回一個ModelAndView,視圖名稱爲「home」。
最後,當調度員的servlet試圖渲染頁面,它說
沒有映射發現HTTP請求的URI與 [/myapp/WEB-INF/tiles-layouts/publicLayout.jsp]
但是,當我更改我的調度程序servlet映射,使*。html,其工作正常,我不想這樣做。
這裏可以做些什麼。我認爲它是一個非常普遍的問題。