SpringMVC返回值类型

SpringMVC返回值类型

  1. 准备测试使用的ReturnTypeController:

  2. 测试使用页面 web/WEB-INF/jsp/returnType/index.jsp :

  3. 返回String类型
    1、 返回逻辑视图名称,根据由于springMVC-servlet.xml配置文件中配置图解析器解析成物理视图
    2、 测试:
    1、 编写控制器方法returnString:(通过“springMVC-servlet.xml”中的配置的视图解析器,解析并响应 prefix+returnValue+suffix 对应的视 图)
    2、 新建 web/WEB-INF/jsp/returnType/returnString.jsp :()

  4. 返回ModelAndView 类型(ModelAndView相对于String的返回类型的优势可以携带参数传递到页面)
    1、 编写控制器方法returnMV:
    2、 新建 web/WEB-INF/jsp/returnType/returnMV.jsp
    3、 测试:

  5. 返回void类型(一般配合PrintWriter使用,和Servlet用户类似)
    1、 编写测试方法returnVoid:
    2、 测试:

  6. 返回JSON类型
    1、 添加Json相关jar包(jackson):
    1、jackson-annotations-2.11.4.jar
    2、jackson-core-2.11.4.jar
    3、jackson-databind-2.11.4.jar
    2、 配置mvc:annotation-driven/
    1、 在springMVC-servlet.xml中添加:
    2、 mvc:annotation-driven/会自动注册RequestMappingHandlerMapping、RequestMappingHandlerAdapter 与xceptionHandlerExceptionResolver 三个bean。
    3、 还将提供以下支持:
    1、 支持使用 ConversionService 实例对表单参数进行类型转换;
    2、 支持使用 @NumberFormat annotation、@DateTimeFormat;
    3、 注解完成数据类型的格式化;
    4、 支持使用 @Valid 注解对 JavaBean 实例进行 JSR 303 验证;
    5、 支持使用 @RequestBody 和 @ResponseBody 注解;

  7. 配置静态资源(以JQuery为例)
    1、 在web目录下添加 js目录
    2、 注意:千万不要放到WEB-INF下,WEB-INF下的资源是受保护的,外部无法访问的
    3、 将JQuery的js添加到js目录下:
    4、 在springMVC-servlet.xml中配置静态资源映射:

  8. 测试返回JSON数据
    1、编写测试用pojo类:com.gx.model.User
    2、编写Controller方法:
    3、修改页面 web/WEB-INF/jsp/returnType/index.jsp :
    4、测试

  9. SpringMVC 中文乱码解决
    1、在web.xml中添加spring 中文过滤器
    2、对应返回void类型使用PrintWriter返回时,还要设置一下

  10. SpringMVC 获取请求参数(提前准备测试相关Controller和Jsp页面:)
    1、准备GetParameterController:
    2、页面: web/WEB-INF/jsp/getParamter/index ,用于编写测试表单:
    3、页面 web/WEB-INF/jsp/getParamter/result.jsp ,用于显示表单提交结果:

  11. 自动类型匹配
    1、针对少量的参数,可以考虑直接使用“自动类型匹配”方式来获取参数。
    2、要求:请求参数名和Controller方法的形参参数名一致。
    3、控制器中的方法:
    4、测试表单:

  12. 自动封装pojo(自动装箱)(自动装箱主要针对大量参数提交的情况。 要求:请求参数名和Controller方法形参参数对象的中的属性名称一致)
    1、使用com.gx.model.User
    2、控制器中的方法:
    3、测试表单:
    4、测试

  13. 使用request获取请求参数(使用request获取请求参数,使用方式就和Servlet类似。本方式通过“自动封装pojo”把 javax.servlet.http.HttpServletRequest 给了Controller的方法,然后通过 request.getParameter(“参数名”) 的方式获取参数)
    1、控制器中的方法:
    2、测试表单:

  14. 使用@RequestParam获取参数(使用@RequestParam获取参数)
    1、控制器中的方法:
    2、测试表单:

  15. RESTFUL风格使用@PathVariable获取参数
    1、restful是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用 于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等 机制
    2、RESTful的关键是定义可表示流程元素/资源的对象。在REST中,每一个对象都是通过URL来表示的,对 象用户负责将状态信息打包进每一条消息内,以便对象的处理总是无状态的。
    3、RESTFUL对于资源的具体操作类型,由HTTP动词表示。
    4、常用的HTTP动词有下面五个
    1、GET(SELECT):从服务器取出资源(一项或多项)
    HTTP GET /user/1 :获得id=1的user
    HTTP GET /user :获取所有的用户信息
    2、POST(CREATE):在服务器新建一个资源。
    HTTP POST /user :新增一个user,需要把提交的user信息放在请求的body中提交
    3、PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
    HTTP PUT /user/1 :修改id=1的user信息,需要把修改的user信息放在请求的body中提交
    4、PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。
    HTTP PATCH /user/1 :修改id=1的user信息,需要把修改的user信息放在请求的body中提交
    5、DELETE(DELETE):从服务器删除资源。
    HTTP DELETE /user/1:删除id=1的user
    5、 控制器中的方法:
    6、 页面测试代码:

  16. 接收ajax提交的复杂数据类型
    1、控制器中的方法:
    2、页面的测试代码
    3、com.gx.model.User中存在Date类型的数据birthday,需要添加格式化的注解

  17. @DateTimeFormat与@JsonFormat(@DateTimeFormat只会处理可以直接从request中获取得到,对于传输的JSON字符串中的日期格 式,由@JsonFormat处理。)
    1、控制器中的方法:
    2、页面的测试代码

  18. SpringMVC Controller传递数据到Jsp视图(总结)
    1、SpringMVC中 Controller传递数据到Jsp视图有三种常用的方法
    1、使用request传递参数
    2、使用Model传递参数
    3、使用ModelAndView传递参数
    2、控制器SendParameterController:
    3、web/WEB-INF/jsp/sendParameter/index.jsp
    4、web/WEB-INF/jsp/sendParameter/result.jsp

  19. @ModelAttribute
    1、@ModelAttribute主要有两种用法:
    1、标注在非功能方法上,每次执行方法时都会先执行@ModelAttribute注解的方法@ModelAttribute注解的方法可以:
    1、在参数中获取使用Model,HttpServletRequest,HttpServletResponse等
    2、也可以正常获取请求的数据
    3、也可以正常获取请求的数据,若该方法有返回值时:自动把返回的数据添加到Modal中,对于此时的Key值有两种情况
    1、如果@ModelAttribute没有指定value值,那么添加的key就是类型名称首字母小写
    2、如果指定了value值会在①的基础上额外添加一个,key就是指定的值
    2、用在方法的参数上,将注解的参数添加到Model中,Key值有两种情况
    1、若@ModelAttribute未指定value值,那么Key值就是类型名称首字母小写
    2、若@ModelAttribute指定value值,那么key值就是指定的值

  20. @SessionAttributes与@SessionAttribute的使用
    1、pring MVC中有两个长得非常像的注解:@SessionAttributes 和 @SessionAttribute。
    2、@SessionAttributes用于在请求之间的HTTP Servlet会话中存储model属性。 它是类型级别的注解,用 于声明特定控制器使用的会话属性。会筛选该控制器下的所有添加到Model中的数据,将符合筛选条件 的数据自动添加到Session中。
    3、@SessionAttribute 用在方法的形参上,从session中获取指定名称的的数据,并把数据给形参参数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值