Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.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 模型中的视图和视图与视图解析器中的视图_Java_Spring_Spring Mvc_Web - Fatal编程技术网

Java 模型中的视图和视图与视图解析器中的视图

Java 模型中的视图和视图与视图解析器中的视图,java,spring,spring-mvc,web,Java,Spring,Spring Mvc,Web,在Spring MVC中,当请求通信时,DispatcherServlet指定指示哪个控制器应处理请求的HandlerMapping控制器处理请求并返回具有指定视图的模型 当viewsolver开始工作时,我不知道接下来会发生什么。如果Controller已经指定了View,为什么会有viewsolver层?它实际上做什么?是否应该在控制器之前或与控制器并行指定视图?或者,Controller应该触发viewsolver层?视图解析器将视图名称映射到实际视图。例如: <bean class

在Spring MVC中,当请求通信时,
DispatcherServlet
指定指示哪个控制器应处理请求的
HandlerMapping
<代码>控制器处理请求并返回具有指定视图的模型


viewsolver
开始工作时,我不知道接下来会发生什么。如果
Controller
已经指定了
View
,为什么会有
viewsolver
层?它实际上做什么?是否应该在控制器之前或与控制器并行指定
视图
?或者,
Controller
应该触发
viewsolver
层?

视图解析器将视图名称映射到实际视图。例如:

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
</bean>

ViewResolver将带回家,并将其更改为
home.jsp
,并查看/WEB-INF/views/以加载
/WEB-INF/views/home.jsp

,因此只有当您以字符串形式返回视图名称而不是指定的视图时,才会触发ViewResolver层。实际上,在控制器中,每个视图都必须以spring可以解析的方式进行转换。此视图可以是pdf、JSON、html、jsp、xml等。如果不使用ViewResolver,字符串无法告诉spring如何解析这些视图
@RequestMapping("/")
public String home() {
    return "home";
}