• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Java > springmvc 参数绑定总结

springmvc 参数绑定总结

作者:lialzm 字体:[增加 减小] 来源:互联网 时间:2017-05-28

lialzm 通过本文主要向大家介绍了springmvc参数绑定,springmvc参数传递,springmvc接收参数,springmvc获取参数,springmvc参数等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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

@RequestParam 绑定单个请求

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

@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 "";
  }
</div>

@RequestParam还支持数组形式

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

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

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

@PathVariable 绑定uri变量值

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

请求/user/1返回id为1

@CookieValue 绑定cookie的值

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

@ModelAttribute绑定参数到命令对象

1、绑定请求参数到对象

先定义两个对象
Role

public class Role implements Serializable {

  private String id;
}

</div>

User

public class User implements Serializable {

  private String id;

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

对应请求/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();
  }
</div>

请求/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();
  }
</div>

获取session数据

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

清除本次会话session

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

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

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

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

发送json格式报文

{
  "id":"123"
}
</div>

返回结果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";
  }
</div>

源码地址:springmvcLearn_jb51.rar

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

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 浅谈spring中的default-lazy-init参数和lazy-init
  • springmvc 参数绑定总结
  • 浅谈spring中的default-lazy-init参数和lazy-init

相关文章

  • 2017-05-28Java编程中的HashSet和BitSet详解
  • 2017-05-28Java工程中使用Mybatis (工程结合Mybatis,数据结合Swing使用))
  • 2017-05-28Java中finalize()详解及用法
  • 2017-05-28详解Java中LinkedHashMap
  • 2017-09-13HashMap底层实现原理/HashMap与HashTable区别/HashMap与HashSet区别
  • 2017-05-28java TreeMap源码解析详解
  • 2017-05-28多线程死锁的产生以及如何避免死锁方法(详解)
  • 2017-05-28.properties文件读取及占位符${...}替换源码解析
  • 2017-05-28详解springMVC之与json数据交互方法
  • 2017-05-28详解springboot + profile(不同环境读取不同配置)

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • SpringMVC结合ajaxfileupload实现文件无刷新上传代码
    • java 单例模式和工厂模式实例详解
    • 详解如何用spring Restdocs创建API文档
    • java生成缩略图的方法示例
    • Java HelloWorld原理分析_动力节点Java学院整理
    • 在Spring Boot中如何使用数据缓存
    • Java 判断字符串a和b是否互为旋转词
    • SWT(JFace)体验之复制粘贴
    • Java三大器之监听器(Listener)的工作原理和代码演示
    • Spring Boot集成Druid数据库连接池

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有