0

我希望有人可以在这里为我指明正确的方向。基本上,我不断从我的请求中将 404 返回到我的 Spring 控制器中。控制器返回视图名称“showcardOverview”。该请求可以毫无问题地进入控制器。我无法弄清楚为什么 Tiles 无法将视图名称解析为 tile 定义。

以下是我的配置文件:

瓷砖定义

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

弹簧视图配置

<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
@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";
    }
}
4

2 回答 2

1

例如,在图块定义中使用 jsp 的完整路径:而不是 /jsp/layouts/flagship.jsp 放置 /WEB-INF/jsp/layouts/flagship.jsp

于 2013-07-02T07:17:25.930 回答
1

您是否在 TilesViewResolver/TilesView 中进行了调试以查看 Tiles 定义是否得到正确解析?404 表示它确实如此,并且 Tiles 已转发到 JSP 但失败了。Tiles 2 也一样吗?即这是与Tiles 3 相关的问题吗?

于 2013-05-09T21:44:03.307 回答