Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我们可以对视图进行spring通用映射吗?_Java_Spring_Spring Mvc - Fatal编程技术网

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

Java 我们可以对视图进行spring通用映射吗?,java,spring,spring-mvc,Java,Spring,Spring Mvc,我是春天的新手。我想要的是,我将拥有各种jsp页面,并将用户请求映射到这些jsp页面。我的问题是“当请求url和jsp名称使用spring控制器映射相同时,我们是否可以将用户请求映射到jsp页面”。我搜索了,但没有找到任何内容 喜欢不写控制器 <bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> <property name="viewClas

我是春天的新手。我想要的是,我将拥有各种jsp页面,并将用户请求映射到这些jsp页面。我的问题是“当请求url和jsp名称使用spring控制器映射相同时,我们是否可以将用户请求映射到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>

默认情况下,Spring MVC注册了一个
DefaultRequestToViewNameTranslator
,它将请求转换为与您的需求类似的视图名称

只需使用
Map
作为返回类型,转换就开始了。 返回
贴图
将显示它作为视图的模型

您还可以返回
void
,但必须确保没有
HttpServletResponse
声明为参数

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

将转换为视图名称:
“注册/表单”
也许我看错了问题,但是如果您想直接将URL映射到JSP(例如,不必定义控制器和方法),那么这可以很容易地完成(如您所希望的)

XML配置:

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

使用上述任一选项,如果您访问/help页面,它将呈现/WEB-INF/jsp/helpPage.jsp

请给我一个示例链接,或者只是在此处粘贴一个示例使用映射作为返回类型,原因是什么?@blank抱歉造成混淆。补充了一些解释,我还是不明白。您打算将map用作什么返回类型?@FaizAli添加了一个示例非常感谢,这是我想要的。但是使用addViewController(“某些值未知”).setViewName(“某些值未知”);也就是说,当不需要模型时,这是一个完美的解决方案+1@FaizAli从未尝试过动态映射-但在这里可以看到以下答案:-看起来他只是将/**映射到UrlFilenameViewController-但正如所指出的,如果以后要添加控制器,则需要添加所有这些映射,因为排除发现UrlFilenameViewController是我们可以将html页面用作视图的最佳选项
@Override
public void addViewControllers(ViewControllerRegistry registry) {
    registry.addViewController("/help-page").setViewName("helpPage");
    }