博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java Web之SpringMVC 进行参数绑定
阅读量:5742 次
发布时间:2019-06-18

本文共 1947 字,大约阅读时间需要 6 分钟。

学习方法

当需要学习一个新的MVC框架需要从以下方面入手:

1、环境搭建(能输出Hello Word)

2、如何传递参数到Controller,Controller如何获取参数
3、如何从Controller传递Model到View
4、如何完成文件的上传
5、如何完成验证
6、异常的处理
7、深入学习一些原理和源代码的学习

分享一下如何传递参数到Controller,Controller如何获取参数

SpringMVC如何进行参数绑定

一、什么是控制器

在一个POJO类定义处标注@Controller,再通过<context:component-scan />扫描响应的包,就可以使POJO类成为一个能处理HTTP请求的控制器

二、请求映射到控制器

用@RequestMapping,可以定义在类和方法上,将一个请求映射到控制器中的方法上。

三、几种典型的处理请求的方法(Controller如何获取请求参数)

1、请求的参数按名称匹配的方式绑定到入参中,返回字符串代表逻辑视图名

@RequestMapping(value="/handle1")public String handle1(@RequestParam("userName") String userName,        @RequestParam("password") String password,        @RequestParam("realName") String realName){  ...return success;}

@RequestParam 用来请求request中的参数,相当于request.getParameter() 其中有三个属性:

  • value用来指定要取得参数的key;
  • required 所取的参数是否必须存在,如果true表示必须存在,若不存在则抛出异常;
  • default 指定该value的默认值。

这一种方式说明参数是URL的一部分,此时也可以去掉@RequestParam,直接写参数就可以了

public String handle1(String userName, String password, String realName)

2、将cookie的值及报文头部属性绑定到入参,方法返回ModelAndView

@RequestMapping(value="/handle2")public ModelAndView handle2(@CookieValue("JSESSIONID") String sessionId,       @RequestHeader("Accept-Language") String accpetLanguage){       ModelAndView mav = new ModelAndView();       mav.setViewName("success");       mav.addObject("user", new User());       return mav;}

3、请求的参数按名称匹配的方式绑定到 user 属性中,返回字符串代表逻辑视图名

@RequestMapping(value="/handle3")public String handle3(User user){  ...return success;}

按“HTTP请求参数名= 命令/表单对象的属性名”的规则,自动绑定请求数据,自动进行基本类型数据转换

4、直接使用Servlet API 对象作为处理方法的入参,返回字符串代表逻辑视图名

@RequestMapping(value="/handle4")public String handle4(HttpServletRequest request){  ...return success;}

5、以REST技术向springMVC传递参数使用占位符

public ModelAndView show(@PathVariable("userid") String userid){       ModelAndView mav = new ModelAndView();       mav.setViewName("success");       mav.addObject("user", new User());       return mav;}

用@PathVariable来把占位符参数绑定到控制器处理方法的入参中

注意:占位符中的{xxx}要和@PathVariable("xxx")的名字一样

6、还可以使用一些其他的参数,如IO流等

转载地址:http://ehizx.baihongyu.com/

你可能感兴趣的文章
查找恶意的TOR中继节点
查看>>
MAVEN 属性定义与使用
查看>>
hadoop2.7.2 HA搭建
查看>>
gitosc上传项目
查看>>
基于开源云平台OpenStack的存储分析
查看>>
关于Android Sqlite语句注意事项一点
查看>>
shell高级视频答学生while循环问题
查看>>
无法SSH到Ubuntu
查看>>
使用@media实现IE hack的方法
查看>>
磁盘管理 - 软RAID
查看>>
KVM下virtio驱动虚拟机XML配置文件分析
查看>>
创建一个基本镜像
查看>>
《11招玩转网络安全》之第一招:Docker For Docker
查看>>
7、kvm虚拟机快照备份
查看>>
visual studio 2005没有找到MSVCR80D.dll问题
查看>>
hive_0.11中文用户手册
查看>>
hiveserver2修改线程数
查看>>
我的友情链接
查看>>
XML教程
查看>>
AS3.0 Array常用方法总结
查看>>