Spring MVC——参数和返回值
0. 介绍
SpringMVC 是一种基于Java的实现MVC设计模型的请求驱动类型的轻量级 Web 框架,属于 Spring FrameWork的后续产品,已经融合在 Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。
它通过一套注解,让一个简单的Java类成为处理请求的控制器,而无须实现任何接口。同时它还支持RESTful编程风格的请求。
Spring MVC的执行流程如下
1. 常用注解
@RequestMapping:建立请求URL和处理方法之间的对应关系,作用在类或者方法上。
@RequestParam:把请求中的指定名称的参数传递给控制器中的形参赋值
举例:
1 | ("/useRequestParam") |
@RequestBody:直接以key=value的形式获取请求体内容(String类型)或者Java对象。用于POST请求。
@PathVaribale:用于绑定 url中的占位符。例如:请求 url 中 /delete/{id},这个{id}就是 url 占位符。
@ModelAttribute:出现在方法上,表示当前方法会在控制器方法之前执行。也可以出现在参数上,获取指定的数据给参数赋值。
应用场景:当表单提交数据不是完整的实体类数据时,保证没有提交数据的字段使用数据库对象原来的数据。
举例:
1 |
|
1 |
|
@SessionAttribute:用于多次执行控制器方法间的参数共享。 value为存入属性的名称,type为存入属性的类型。
2.数据响应
1. 返回字符串
controller 方法返回字符串可以指定逻辑视图名,通过视图解析器解析为物理视图地址。
视图解析器的配置:
1 | <!-- 配置视图解析器 --> |
2. 返回空值(使用原生Servlet)
- 转发(此外,如果不使用原生
1
request.getRequestDispatcher("/WEB-INF/pages/success.jsp").forward(request,response);
Servlet,SpringMVC也提供了转发的方式)1
return "forward:/WEB-INF/pages/success.jsp";
- 重定向(此外,如果不使用原生
1
response.sendRedirect(request.getContextPath()+"/index.jsp");
Servlet,SpringMVC也提供了重定向的方式)1
return ""redirect:/index.jsp";
- 通过
response指定响应结果1
2
3response.setCharacterEncoding("utf-8");
response.setContentType("application/json;charset=utf-8");
response.getWriter().print("你好");
3. 返回ModelAndView
1 | //加入数据 |
4. 返回Json(常用于前后端分离项目)
使用ResponseBody注解,将Java对象转化为Json字符串
1 | ("/testAjax") |