尝试使用mvc:view controller隐式传递视图

时间:2011-10-31 06:49:30

标签: spring spring-mvc

我有一个带有 MANY 条目的Spring配置文件,如下所示。

<mvc:view-controller path="/test/one" view-name="one.xml" />
<mvc:view-controller path="/test/two" view-name="two.xml" />
<mvc:view-controller path="/test/three" view-name="three.xml" />

现在我正在集成控制器代码,我试图避免每个页面都有一个请求映射。有没有办法让Spring MVC隐藏地找到带有controllers.xml中指定视图的页面。

所以不要将视图作为字符串返回。我想要一个方法,我返回void或只是模型到页面,并找到页面

@RequestMapping(value = "/test/one", method = RequestMethod.GET)
public String getOne(HttpServletRequest request, Model model) {

    // Business Logic
    return "one.xml" // would like to be able to return void here or just the mode
} 

1 个答案:

答案 0 :(得分:1)

mvc:view-controller的想法正是为了避免必须实现一个控制器,它唯一的工作就是派遣到一个视图。只需在XML中使用此标记就足够了。你不需要控制器。

请参阅http://static.springsource.org/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-view-controller

如果你有控制器逻辑,因此需要一个控制器,那么应​​删除mvc:view-controller元素,并由实际的控制器替换,该控制器将调度到适当的视图。您可以使用RequestToViewNameTranslator避免在此明确指定视图名称,如here所述。