我们可以对视图进行spring通用映射吗?

时间:2014-03-21 13:47:52

标签: java spring spring-mvc

我是春天新手。我想要的是我将拥有各种jsp页面,我将用户请求映射到那些JSP页面。我的问题是“当使用spring controller映射请求url和jsp名称相同时,我们可以将用户请求映射到jsp页面吗。”我搜索并没有找到任何东西。

喜欢不写控制器

<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
    <property name="prefix" value="/WEB-INF/jsp/" />
    <property name="suffix" value=".jsp" />
</bean>

2 个答案:

答案 0 :(得分:1)

默认情况下,Spring MVC会注册DefaultRequestToViewNameTranslator,它会将请求转换为类似于您要求的视图名称。

只需使用Map作为返回类型即可开始翻译。 返回Map会将其公开为视图模型。

您也可以返回void但是您必须确保没有HttpServletResponse被声明为参数。

@RequestMapping("/registration/form")
public ModelMap form(ModelMap model) {
    model.addAttribute("form", new FormObject());
    return model;
}

将转换为查看名称:"registration/form"

答案 1 :(得分:1)

也许我误读了这个问题,但是如果你想直接将URL映射到JSP(例如,无需定义控制器和方法),那么可以很容易地完成(正如你所希望的那样)

XML配置:

<mvc:view-controller path="/help-page" view-name="helpPage"/>

或者如果您使用的是Java Config(扩展WebMvcConfigurerAdapter):

@Override
public void addViewControllers(ViewControllerRegistry registry) {
    registry.addViewController("/help-page").setViewName("helpPage");
    }

使用上述任一方法,如果您访问/ help-page,那么它将呈现/WEB-INF/jsp/helpPage.jsp