springmvc 数据绑定

1.函数定义为integer时,即使传入参数为空也不会报错

public class Hello {
    @RequestMapping(value="first")
    @ResponseBody
    public String SayHi(Integer age) {
        return "age:"+age;
    }
}

2.传入数组


http://localhost:8080/user?name=zhangsan&age=18&info.phone=10087&address=ewe

@RequestMapping(value = "array")
        @ResponseBody
        public String array(String[] name){
            StringBuilder sb=new StringBuilder();
            for(String item:name){
                sb.append(item).append(" ");
            }
            return sb.toString();
        }

3.对象 多层级对象

user类中含有info类

http://localhost:8080/user?name=zhangsan&age=18&info.phone=10087&address=ewe

        @RequestMapping(value="user")
        @ResponseBody
        public String user(User user){
            return user.toString();
        }

4.如果两个类中属性相同 

user类中有name和age,admin类中也有name和age

http://localhost:8080/user?user.name=tom&admin.name=tre

@RequestMapping(value="user")
        @ResponseBody
        public String user(User user, Admin admin){
            return user.toString()+" "+admin.toString();
        }
        @InitBinder("user")
        public void initUser(WebDataBinder binder){
            binder.setFieldDefaultPrefix("user.");

        }
        @InitBinder("admin")
        public void initAdmin(WebDataBinder binder){
        binder.setFieldDefaultPrefix("admin.");

      }

5.list集合 如果参数直接写List<user> list是无效的需要先写一个listgrom类

http://localhost:8080/list?list[0].name=aa&list[1].name=bb

package entity;

import java.util.List;

public class ListForm {
    private List<User> list;

    public List<User> getList() {
        return list;
    }

    public void setList(List<User> list) {
        this.list = list;
    }

    @Override
    public String toString() {
        return "ListForm{" +
                "list=" + list +
                '}';
    }
}

   @RequestMapping(value="list")
      @ResponseBody
      public String list(ListForm listForm){
          return listForm.toString();
      }

6.

@RequestParam绑定单个请求参数值
  1. public String requestparam1(@RequestParam String username)  

     如果不使用@RequestParam,要求request传入参数名称和controller方法的形参名称一致,方可绑定成功。如果使用@RequestParam,不用限制request传入参数名称和controller方法的形参名称一致。通过@RequestParam中的required属性指定参数是否必须要传入,如果设置为true,没有传入参数就会报错。

7.@PathVariable绑定URI模板变量值

@RequestMapping(value="/users/{userId}/topics/{topicId}")  
public String test(  
       @PathVariable(value="userId") int userId,   
       @PathVariable(value="topicId") int topicId)        

请求的URL为“控制器URL/users/123/topics/456”,则自动将URL中模板变量{userId}和{topicId}绑定到通过@PathVariable注解的同名参数上,即入参后userId=123、topicId=456

8.

@ModelAttribute绑定请求参数到命令对象

public String test1(@ModelAttribute("user") UserModel user) 
多了一个注解 @ModelAttribute("user") ,它的作用是将该绑定的命令对象以“user”为名称添加到模型对象中供视图页面展示使用。我们此时可以在视图页面使用 ${user.username} 来获取绑定的命令对象的属性。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值