我在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 [找不到带有URI的HTTP请求的映射[/WEB-INF/*.jsp]”适用于所有瓷砖。
如何从servlet-mapping中排除tile(来自WEB-INF内)?或者我可以将这些文件显式映射到tile servlet?
答案 0 :(得分:0)
您应该在web.xml
文件中配置它,而不是在context
中执行此操作。春季docs中提供了相关说明。
答案 1 :(得分:0)
我的spring-context.xml的这个sippet可以帮助你构建你的配置。 它基于以下事实:有两种磁贴配置文件:
/ 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>