最近在学习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小时内与您取得联系。