全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

springmvc 参数绑定总结

最近在学习springmvc,今天把springmvc 参数绑定给整理一下,也算个学习笔记吧!

@RequestParam 绑定单个请求

RequestMapping(value = "/form2")
  @ResponseBody
  public String form2(@RequestParam String name){
    logger.info("name=" + name );
    return "";
  }

@RequestParam 有required(是否必填),defaultValue(默认参数)参数

默认required=true,defaultValue为空

如果name参数不存在则返回400

使用下面这种写法则required默认为false

 @RequestMapping(value = "/form")
  @ResponseBody
  public String form(String name, Integer age) {
    logger.info("name=" + name + "," + "age=" + age);
    return "";
  }

@RequestParam还支持数组形式

@RequestMapping(value = "/names")
  @ResponseBody
  public String names(@RequestParam String[] name) {
    logger.info("name=" + Arrays.asList(name));
    return Arrays.asList(name).toString();
  }

对应请求/names.do?name=张三,李四

或者/names.do?name=张三&name=李四

@PathVariable 绑定uri变量值

@RequestMapping("/user/{id}")
  @ResponseBody
  public String getUser(@PathVariable Long id) {
    return String.valueOf(id);
  }

请求/user/1返回id为1

@CookieValue 绑定cookie的值

 @RequestMapping("/getCookie")
  @ResponseBody
  public String getCookie(@CookieValue("JSESSIONID") String sessionId) {
    return sessionId;
  }

@ModelAttribute绑定参数到命令对象

1、绑定请求参数到对象

先定义两个对象
Role

public class Role implements Serializable {

  private String id;
}

User

public class User implements Serializable {

  private String id;

  private Role role;
}
@RequestMapping("/getUserByModel")
  @ResponseBody
  public String getUserByModel(@ModelAttribute("user") User user) {
    logger.info(user.toString());
    return "";
  }

对应请求/getUserByModel.do?id=123&role.id=1

暴露表单引用对象为模型数据

 @ModelAttribute("user")
  public User getUser(String userId) {
    User user = new User();
    user.setId("11");
    Role role=new Role();
    role.setId("123");
    user.setRole(role);
    return user;
  }

 
   @RequestMapping("/getUserModel")
  @ResponseBody
  public String getUserModel(@ModelAttribute User user) {
    return user.toString();
  }

请求/getUserModel?id=1

返回 User{id='1', role=Role{id='123'}}

使用@ModelAttribute注释的方法会在所有Controller方法前运行

因为先运行了@ModelAttribute注解的方法,生成了一个user对象,之后user对象的id属性被修改为1

@SessionAttributes绑定命令对象到session

springmvc提供了@SessionAttributes用来对会话数据的存取

添加session

 @RequestMapping("/setSession")
  @ResponseBody
  public String setSession(
      HttpSession session) {
    City city = new City();
    city.setCityName("shanghai");
    session.setAttribute("city", city);
    return city.toString();
  }

获取session数据

//在类头部添加需要的session属性
@Controller
@SessionAttributes(value = {"city"})
public class TestController {
 @RequestMapping("/getSession")
  @ResponseBody
  public String getSession(@ModelAttribute City city) {
    return city.toString();
  }
}

清除本次会话session

 @RequestMapping("/clearSession")
  @ResponseBody
  public String clearSession(SessionStatus status) {
    status.setComplete();
    return "success";
  }

@RequestBody绑定请求的内容区数据并能进行自动类型转换等

使用RequestBody可以将json转化为对象

 @RequestMapping("/getUserByJson")
  @ResponseBody
  public String getUserByJson(@RequestBody User user){
    return user.toString();
  }

发送json格式报文

{
  "id":"123"
}

返回结果User{id='123', role=null}

@RequestPart绑定“multipart/data”数据

 @RequestMapping("/getFile")
  @ResponseBody
  public String getFile(@RequestPart("image") MultipartFile file){
    System.out.println(file.getName()+","+file.getSize());
    return "success";
  }

源码地址springmvcLearn_jb51.rar

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# springmvc  # 参数绑定  # spring  # mvc  # 获取参数  # 参数  # 深入理解SpringMVC的参数绑定与数据响应机制  # SpringMVC 参数绑定之视图传参到控制器的实现代码  # SpringMVC中参数绑定问题实例详解  # SpringMVC 参数绑定相关知识总结  # SpringMVC自定义参数绑定实现详解  # SpringMVC 参数绑定意义及实现过程解析  # springmvc请求参数的绑定的项目实践  # 绑定  # 李四  # 会在  # 不存在  # 也算  # 转化为  # 并能  # 表单  # 必填  # 大家多多  # 为先  # 为空  # 学习笔记  # 整理一下  # 默认为  # 变量值  # 张三  # amp  # asList  # Arrays 


相关文章: 浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?  如何通过VPS建站无需域名直接访问?  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  如何通过FTP服务器快速搭建网站?  建站之星展会模板:智能建站与自助搭建高效解决方案  婚礼视频制作网站,学习*后期制作的网站有哪些?  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  建站主机系统SEO优化与智能配置核心关键词操作指南  如何通过商城免费建站系统源码自定义网站主题?  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  安徽网站建设与外贸建站服务专业定制方案  如何解决VPS建站LNMP环境配置常见问题?  建站之星各版本价格是多少?  常州企业网站制作公司,全国继续教育网怎么登录?  如何用wdcp快速搭建高效网站?  建站主机服务器选型指南与性能优化方案解析  制作旅游网站html,怎样注册旅游网站?  如何确认建站备案号应放置的具体位置?  如何在宝塔面板创建新站点?  实例解析angularjs的filter过滤器  建站之星手机一键生成:多端自适应+小程序开发快速建站指南  如何用景安虚拟主机手机版绑定域名建站?  c# 服务器GC和工作站GC的区别和设置  建站主机是否属于云主机类型?  如何通过NAT技术实现内网高效建站?  北京网站制作网页,网站升级改版需要多久?  C++如何编写函数模板?(泛型编程入门)  如何在搬瓦工VPS快速搭建网站?  制作网页的网站有哪些,电脑上怎么做网页?  网站建设制作、微信公众号,公明人民医院怎么在网上预约?  如何快速生成可下载的建站源码工具?  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  nginx修改上传文件大小限制的方法  建站之星2.7模板快速切换与批量管理功能操作指南  如何用美橙互联一键搭建多站合一网站?  如何快速辨别茅台真假?关键步骤解析  如何选择高效响应式自助建站源码系统?  网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  南宁网站建设制作定制,南宁网站建设可以定制吗?  单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?  西安专业网站制作公司有哪些,陕西省建行官方网站?  如何配置FTP站点权限与安全设置?  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  魔毅自助建站系统:模板定制与SEO优化一键生成指南  电商平台网站制作流程,电商网站如何制作?  如何在建站之星绑定自定义域名?  Thinkphp 中 distinct 的用法解析  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  如何自定义建站之星网站的导航菜单样式? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。