SpringMVC是一种基于MVC架构模式的Web框架,它可以让开发者更加简便地开发Web应用程序。在SpringMVC中,渲染视图是关键步骤之一。SpringMVC借助于视图解析器(ViewResolver)将ModelAndView对象中的模型数据渲染成视图,输出给浏览器。
以下是SpringMVC通过模型视图ModelAndView渲染视图的实现攻略:
- 编写控制器类
在SpringMVC中,控制器类是进行请求调度的关键,它通过处理请求并调用适当的业务逻辑代码,生成视图和响应。控制器类通常使用@Controller注解进行标示。我们需要在控制器中编写两个方法:一个用于处理请求,另一个用于返回视图。
@Controller
@RequestMapping(value = "/test")
public class TestController {
@RequestMapping(value = "/hello", method = RequestMethod.GET)
public ModelAndView sayHello() {
ModelAndView mav = new ModelAndView();
mav.addObject("message", "Hello, SpringMVC!");
mav.setViewName("hello");
return mav;
}
}
上面代码示例中,我们编写了一个方法sayHello()用于处理GET请求并返回一个ModelAndView对象。在ModelAndView对象中,我们将一个名为“message”的数据模型对象添加到了视图中,并设置了视图名称为“hello”。
- 配置视图解析器
配置视图解析器是必须的,因为它可以根据视图名称查找并渲染视图。在SpringMVC中,可以使用两种视图解析器:InternalResourceViewResolver和UrlBasedViewResolver。在这里,我们使用InternalResourceViewResolver作为视图解析器,并将前缀设置为“/WEB-INF/view/”,后缀设置为“.jsp”:
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
<property name="prefix">
<value>/WEB-INF/view/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
- 创建视图文件
在视图文件中,我们可以使用EL表达式访问控制器中添加的模型数据。在本例中,我们应该在“/WEB-INF/view/”目录下创建一个名为“hello.jsp”的文件:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello</title>
</head>
<body>
<h1>${message}</h1>
</body>
</html>
从上述代码中可以看出,“${message}”实际上是我们在控制器中添加的一个名为“message”的模型数据。
- 运行测试
我们可以使用浏览器或Postman等工具发送GET请求到“/test/hello”路径,SpringMVC应该会将请求路由到我们的TestController类中的sayHello()方法并返回一个ModelAndView对象,让我们看到一个“Hello, SpringMVC!”信息。渲染视图的过程由SpringMVC的视图解析器完成。
示例代码2:
@Controller
@RequestMapping(value = "/items")
public class ItemController {
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public ModelAndView getItem(@PathVariable("id") int id) {
Item item = itemService.getItemById(id);
ModelAndView mav = new ModelAndView();
mav.addObject("item", item);
mav.setViewName("item");
return mav;
}
}
在这里我们以查询商品为例,我们接受一个参数:商品ID。我们从数据源中获取商品信息并返回一个ModelAndView对象。在ModelAndView对象中,我们将获取到的商品信息添加到“item”中,并设置了视图名称为“item”。接下来我们同样需要配置视图解析器和编写渲染视图的jsp页面。
限于篇幅,视图解析器和jsp页就不赘述了,和上面的步骤基本相似。但实现时需要注意命名问题。
总之,当我们向浏览器返回ModelAndView对象时,SpringMVC会自动选择相应的视图,通过视图解析器查找并渲染视图,之后将视图渲染成HTML输出到响应中。在这个过程中,模型数据和视图名称被封装到了ModelAndView对象中。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringMVC通过模型视图ModelAndView渲染视图的实现 - Python技术站