我是春天新手。我想要的是我将拥有各种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>
答案 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