我希望有人能指出我正确的方向。基本上我不断从我的请求返回到我的Spring控制器。控制器返回视图名称“showcardOverview”。请求进入控制器没有问题。我无法弄清楚为什么Tiles无法将视图名称解析为tile定义。
以下是我的配置文件:
TILE DEFS
<tiles-definitions>
<definition name="base" template="/jsp/layouts/flagship.jsp">
<put-attribute name="head" value="/jsp/assets/head.jsp" />
<put-attribute name="left" value="/jsp/assets/left.jsp" />
<put-attribute name="right" value="/jsp/assets/right.jsp" />
<put-attribute name="body" />
</definition>
<definition name="showcardOverview" extends="base">
<put-attribute name="body" value="/jsp/Showcard-Overview.jsp" />
</definition>
</tiles-definitions>
SPRING VIEW CONFIG
<mvc:annotation-driven></mvc:annotation-driven>
<context:component-scan base-package="com.tms.zcore.movies.controller" />
<bean id="tilesviewResolver" class="org.springframework.web.servlet.view.tiles3.TilesViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView"/>
<property name="order" value="1"/>
</bean>
<bean id="tilesConfigurer"
class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/conf/tiles/tiles-defs.xml</value>
</list>
</property>
</bean>
编辑:
这是我的Controller类
@Controller
@RequestMapping(value="/Showcard")
public class MovieShowcardController {
@RequestMapping("/Overview/{id}/{seoName}")
public String getMovieOverview(@PathVariable(value="id") String movieId, @PathVariable(value="seoName") String seoName, Model model) {
return "showcardOverview";
}
}
答案 0 :(得分:1)
您是否在TilesViewResolver / TilesView中调试以查看Tiles定义是否得到正确解析? 404意味着它确实存在并且Tiles已转发到JSP但失败了。与Tiles 2一样的工作吗?即这是Tiles 3的相关问题吗?
答案 1 :(得分:1)
在tile定义中使用jsp的完整路径,例如:而不是/jsp/layouts/flagship.jsp put /WEB-INF/jsp/layouts/flagship.jsp