SpringMvc请求参数绑定

本文详细介绍了Spring MVC中@RequestMapping的使用,包括请求参数的绑定机制,如基本数据类型、字符串、实体类型、JavaBean包装类的绑定,以及如何处理中文乱码问题。此外,还探讨了数组、集合的绑定,自定义类型转换器的实现,以及如何使用原生ServletAPI对象、@RequestParam、@RequestHeader、@CookieValue和@RequestBody注解来处理不同类型的请求数据。
摘要由CSDN通过智能技术生成
@RequestMapping
  • 作用

    • 确定请求URL和处理方法之间的对应关系

    • 窄化请求

    • 请求方法限定

        	@RequestMapping(method = RequestMethod.GET) 等价 @GetMapping 
        	@RequestMapping(method = RequestMethod.POST) 等价 @PostMapping 
        	@RequestMapping(method={RequestMethod.GET,RequestMethod.POST})
      
  • 常用属性

    • path: 指定请求路径的url
    • valer: value属性和path属性是一样的
    • method: 指定该方法的请求方式
    • parmas: 指定必须要传递的请求参数
      • 比如 :要求请求参数必须传递name

          @RequestMapping(value = "/toIndex.do",params = {"name"})
        
请求参数的绑定概念
  • 请求参数的绑定说明
    • 绑定机制
      • 表单提交的数据都是键值对格式的 name=xixi&password=123456
      • SpringMVC的参数绑定过程是把表单提交的请求参数,作为控制器中方法的参数进行绑定
        要求:提交表单的name和参数的名称是相同的
    • 支持的数据类型
      • 基本数据类型和字符串类型
      • 实体类型(JavaBean)
      • 数组类型
请求参数绑定之基本数据类型和字符串类型
  • 注意事项
    • 提交表单的name和参数的名称是相同的
    • 区分大小写
  • 案例演示
    • 需求案例将id和name绑定大Controller方法形参上

    • 页面代码

        	<form action="${pageContext.request.contextPath}/testParam1.do"> 
        		编号:<input type="text" name="id"/><br> 	
        		账户:<input type="text" name="name"/><br> 
        		<button type="submit">提交</button> 
        	</form>
      
    • controller方法

         @PostMapping( "/testParam1.do")
        public ModelAndView regist(Integer id, String name,){
        System.out.println("id : " + id + " , name: " + name+" );
        User user = new User(id,name);
        System.out.println(user);
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("index");
         //调用service
        return modelAndView;
        }
      
请求参数绑定之实体类型(JavaBean)
  • 提交表单的name和JavaBean中的属性名称要一致

  • 页面代码

      <form action="${pageContext.request.contextPath}/testParam2.do"> 
      			编号:<input type="text" name="id"/><br> 	
      			账户:<input type="text" name="name"/><br> 
      			<button type="submit">提交</button> 
      		</form>
    
  • controller方法

      @RequestMapping("/testParam2.do") 
      public ModelAndView testParam1(User user) { 
      System.out.println("id : " + user.getId() + " , username : " + user.getUsername()); 
      	ModelAndView modelAndView = new ModelAndView();
      	modelAndView.setViewName("index");
     		 //调用service
      	return modelAndView;
      }
    
请求参数绑定之JavaBean包装类
  • 如果一个JavaBean类(对象A)中包含另外一个JavaBean类(对象B),那么表单的name属性需要编写成:对象B.属性

  • 包装类

      public class UserQuery {
    
      	private User user;
    
      	public UserQuery() {
      	}
    
       	public UserQuery(User user) {
     		 this.user = user;
        }
    
      	public Us
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值