关闭

SpringMVC 数据绑定

标签: springMVC
4190人阅读 评论(0) 收藏 举报
分类:


SpringMVC 数据绑定


我们先来了解一下SpringMVC怎么实现数据的绑定。

套餐一:普通访问 ,不带参数

需要注解:@RequestMapping

@RequestMapping:访问路径,如果只有value参数可以省略value

@RequestMapping(value = "demo")
	public String demo() {
		return "success";
	}


套餐二:ajax请求 ,反馈信息

需要注解:@RequestMapping和@ResponseBody还有@PathVariable

@ResponseBody:添加该注解后使返回值返回到页面

@PathVariable:绑定URI 模板变量值通过占位符获得请求参数

@RequestMapping(value = "finish/{id}", method = RequestMethod.POST)
  @ResponseBody
  public String finish(@PathVariable("id") Long id) {
    Transfer transfer = transferService.findOne(Transfer.class, id);
    transfer.setIsDone(1);
    transfer.setTransferTime(new Date());
    transferService.save(transfer);
    return "true";
  }


套餐三:对实体类的操作,比如更新,创建,修改,删除(crud)

需要注解:@RequestMapping和@Valid

@Valid:数据校验和实例化javabean

@RequestMapping(value = "create", method = RequestMethod.POST)
  public String create(@Valid Campaign newCampaign) {
    String strToday = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
    newCampaign.setShowDate(strToday);
    campaignService.save(newCampaign);
    return "redirect:/campaign/";
  }
删除就不需要@Valid,因为删除只需要一个id

@RequestMapping({"delete/{id}"})
  public String delete(@PathVariable("id") Long id){
     actionService.deleteById(UserAction.class, id);
     return "redirect:/campaign/";
   }
更新还需要一个@ModelAttribute: 绑定参数到命令对象
@RequestMapping(value = "update", method = RequestMethod.POST)
	public String update(@Valid @ModelAttribute("entity") UserAction useraction) {
		actionService.save(useraction);
		return "redirect:/useraction/";
	}


以上便是映射路径和数据绑定的常用例子,然而数据绑定的注解并不只有那么一丢丢。

1、@RequestParam绑定单个请求参数值
2@PathVariable绑定URI 模板变量值
3@CookieValue绑定Cookie 数据值
4@RequestHeader绑定请求头数据
5@ModelAttribute绑定参数到命令对象
6@SessionAttributes绑定命令对象到session

@RequestParam:

@RequestMapping(value = "create", method = RequestMethod.POST)
	@ResponseBody
	public String createImpression(
			@RequestParam(value = "campaignId", required = true) long campaignId,
			@RequestParam(value = "clickId", required = true) String clickId) {
		createUserAction(campaignId, clickId);
		return "";
	}
@CookieValue:
@RequestMapping(value="cookie")
	public void cookieValue(@CookieValue(value="JSESSIONID") String sessionId
			,WebRequest wr,HttpSession session){
		System.out.println(sessionId);
		System.out.println(wr.getSessionId());
		System.out.println(session.getId());
	}

@RequestHeader:

@RequestMapping(value="header")
	public void headerValue(@RequestHeader(value="Accept") String accept,
			@RequestHeader("User-Agent") String userAgent,
			@RequestHeader("Hello") String hello){
		System.out.println("accept : "+accept);
		System.out.println("userAgent : "+userAgent);
		System.out.println("hello : "+hello);
	}

@SessionAttributes:

@SessionAttributes(value="sessionAttr")
public class DataBindingFromAnn {
@RequestMapping(value="session")
	public String sessionAttr (Model model) {
		UserModel userModel = new UserModel();
		userModel.setName("ITDragon");
		userModel.setPassword("abcdefg");
		model.addAttribute("sessionAttr", userModel);
		return "sessionAttr";
	}
	
}

以上便是数据绑定的常用注解以及使用方法,有什么问题和建议可以留言,我会及时更正。







2
0
查看评论

学习SpringMVC(十六)之数据绑定流程

1.SpringMVC主框架将ServletRequest对象及目标方法的入参实例传递给WebDataBinderFactory实例,以创建DataBinder实例对象 2.DataBinder调用装配在SpringMVC上下文中的ConversionService组件进行数据类型转换、数...
  • baidu_21578557
  • baidu_21578557
  • 2016-05-24 09:13
  • 1424

SpringMVC-数据绑定流程分析

知己海内存 2016-12-11 16:14 1.提出问题 ①日期字符串格式的表单参数,提交后转换为Date类型 1.数据类型转换 2.数据格式 3.数据校验 --> BirthDay : Employee类中增加日期类型属性: //关于类型转换 private...
  • u011277123
  • u011277123
  • 2016-12-12 08:54
  • 2179

Spring Mvc那点事---(17)Spring Mvc之数据绑定

Spring.mvc数据绑定可以有多种方法,可以绑定字符串,实体MODEL,日期等。可以绑定集合,JSON字符串,XML等。可以使用PropertyFormatter, Formatter, Converter自定义转换器,进行数据转换
  • zx13525079024
  • zx13525079024
  • 2016-06-14 21:30
  • 725

springMVC数据绑定流程

springMVC数据绑定流程 springMVC框架将ServletRequest对象及方法的如参实例传递给WebDataBinderFactory石丽以创建DataBinder对象。DataBinder调用装配在springMVC上下文的ConversionService组件进行数据类...
  • u013067598
  • u013067598
  • 2017-04-13 14:36
  • 388

【SpringMVC学习05】SpringMVC中的参数绑定总结

众所周知,springmvc是用来处理页面的一些请求,然后将数据再通过视图返回给用户的,前面的几篇博文中使用的都是静态数据,为了能快速入门springmvc,在这一篇博文中,我将总结一下springmvc中如何接收前台页面的参数,即springmvc中的参数绑定问题。1. 参数绑定的过程我们可以回忆...
  • eson_15
  • eson_15
  • 2016-06-21 20:08
  • 31917

springMVC4(8)模型数据绑定全面分析

使用@ModelAttribute、Model、Map、@SessionAttributes能便捷地将我们的业务数据封装到模型里并交由视图解析调用。下面开始一一分析在方法入参上使用@ModelAttribute使用@ModelAttribute可以直接将我们的方法入参添加到模型中。我们先看一个实例:...
  • qwe6112071
  • qwe6112071
  • 2016-04-03 10:02
  • 3678

Spring MVC系列(五)之自定义数据绑定---HandlerMethodArgumentResolver

介绍       前面几节我们介绍了Spring MVC的几种常见的数据绑定的方法,可以灵活地获取用户请求中的参数,例如@PathVariable,@ModelAttribute,@RequestParam等这些数据绑定注解,有了这些注解,我们可以很...
  • linuu
  • linuu
  • 2016-04-05 16:00
  • 4048

SpringMVC强大的数据绑定—注解式控制器详解

6.6.2、@RequestParam绑定单个请求参数值 @RequestParam用于将请求参数区数据映射到功能处理方法的参数上。 Java代码   public String requestparam1(@RequestParam&#...
  • z69183787
  • z69183787
  • 2016-12-16 18:24
  • 504

Spring MVC的参数绑定机制

转自: 1、详解SpringMVC中Controller的方法中参数的工作原理 http://www.cnblogs.com/fangjian0423/p/springMVC-request-param-analysis.html 2、SpringMVC的各种参数绑定方式 http://...
  • gjf281
  • gjf281
  • 2016-08-28 13:05
  • 3252

关于Spring MVC的数据绑定问题

最近在做第一个基于Spring MVC的项目,发现了一些在学习过程中没有注意到的问题,比如数据绑定,Json数据转换等等。。。 数据绑定 数据绑定最主要的问题就是复杂对象数组的绑定,当然,如果真在后台通过数组来绑定前台传递过来的Json字符串,会出很多问题,比如java.util.LinkedHa...
  • u013257679
  • u013257679
  • 2016-03-06 13:56
  • 341
    友情链接
    个人资料
    • 访问:794387次
    • 积分:8900
    • 等级:
    • 排名:第2552名
    • 原创:132篇
    • 转载:42篇
    • 译文:0篇
    • 评论:140条
    博客特色
    闻道有先后,术业有专攻。无贵无贱,无长无少,道之所存,师之所存也。
    我很喜欢这句话,当我们遇到不熟悉的领域,就应该虚心学习。同时我们也不能因为别人的夸赞而骄傲,我们只是比他们先了解罢了。
    我喜欢将学习的知识总结写成博客。把这里当作笔记本,方便自己同时也希望帮助到其他人。
    博客专栏