在Spring MVC中,View是用于渲染模型数据的组件。在本文中,我们将详细介绍Spring MVC中的View视图,并提供两个示例来说明它们的使用。
ViewResolver
在Spring MVC中,ViewResolver是用于解析View的组件。它将逻辑视图名称解析为实际的View对象,并将其返回给DispatcherServlet。在Spring MVC中,有多种ViewResolver可供选择,包括InternalResourceViewResolver、TilesViewResolver和FreeMarkerViewResolver等。以下是一个简单的示例:
- 在“src/main/resources/applicationContext.xml”文件中添加以下内容:
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
在上面的示例中,我们定义了一个名为“InternalResourceViewResolver”的Bean,并将其指定为ViewResolver组件。我们使用<property>
元素来设置ViewResolver的属性,包括“prefix”和“suffix”。其中,“prefix”属性指定了JSP文件的前缀路径,“suffix”属性指定了JSP文件的后缀名。
- 在“src/main/webapp/WEB-INF/views/”目录下创建一个名为“hello.jsp”的JSP文件,内容如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Hello, world!</title>
</head>
<body>
<h1>Hello, world!</h1>
</body>
</html>
在上面的示例中,我们定义了一个名为“hello.jsp”的JSP文件,并在其中输出了一个“Hello, world!”的标题。
- 在“src/main/java/com/example/demo/”目录下创建一个名为“HelloController”的Java类,内容如下:
@Controller
public class HelloController {
@GetMapping("/hello")
public String hello(Model model) {
model.addAttribute("message", "Hello, world!");
return "hello";
}
}
在上面的示例中,我们定义了一个名为“HelloController”的控制器类,并使用@Controller
注解来指定该类为控制器类。我们还定义了一个名为“hello”的控制器方法,并使用@GetMapping
注解来指定该方法的请求路径为“/hello”。在控制器方法中,我们使用Model对象来设置模型数据,并返回一个名为“hello”的逻辑视图名称。
- 启动SpringMVC应用程序,并访问“http://localhost:8080/hello”路径。应用程序将返回一个包含“Hello, world!”标题的JSP页面。
在上面的示例中,我们使用InternalResourceViewResolver来解析名为“hello”的逻辑视图名称,并将其映射到名为“hello.jsp”的JSP文件上。
View
在Spring MVC中,View是用于渲染模型数据的组件。它将模型数据渲染为HTML、XML或JSON等格式,并将其返回给客户端。在Spring MVC中,有多种View可供选择,包括JstlView、VelocityView和JsonView等。以下是一个简单的示例:
- 在“src/main/java/com/example/demo/”目录下创建一个名为“HelloController”的Java类,内容如下:
@Controller
public class HelloController {
@GetMapping("/hello")
public ModelAndView hello() {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("hello");
modelAndView.addObject("message", "Hello, world!");
return modelAndView;
}
}
在上面的示例中,我们定义了一个名为“HelloController”的控制器类,并使用@Controller
注解来指定该类为控制器类。我们还定义了一个名为“hello”的控制器方法,并使用@GetMapping
注解来指定该方法的请求路径为“/hello”。在控制器方法中,我们使用ModelAndView对象来设置模型数据和视图名称,并返回该对象。
- 在“src/main/webapp/WEB-INF/views/”目录下创建一个名为“hello.jsp”的JSP文件,内容如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Hello, world!</title>
</head>
<body>
<h1>${message}</h1>
</body>
</html>
在上面的示例中,我们定义了一个名为“hello.jsp”的JSP文件,并在其中使用EL表达式${message}
来输出模型数据。
- 启动SpringMVC应用程序,并访问“http://localhost:8080/hello”路径。应用程序将返回一个包含“Hello, world!”标题的JSP页面。
在上面的示例中,我们使用ModelAndView来设置模型数据和视图名称,并将其返回给DispatcherServlet。DispatcherServlet将使用JstlView来渲染模型数据,并将其输出为HTML格式。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:springMVC中的view视图详细解析 - Python技术站