Spring MVC 3 + Tiles 3

时间:2013-05-08 18:57:46

标签: spring-mvc tiles-3

我希望有人能指出我正确的方向。基本上我不断从我的请求返回到我的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";
    }
}

2 个答案:

答案 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