Spring MVC接收请求的参数
Springmvc中,接收页面提交的数据是通过方法形参来接收:
-  处理器适配器调用springmvc使用反射将前端提交的参数传递给controller方法的形参 
-  springmvc接收的参数都是String类型,所以spirngmvc提供了很多converter(转换器)在特殊情况下需要自定义converter,如对日期数据 
1.少量参数(基本数据类型)
直接接收即可
案例:
 controller
@Controller
@RequestMapping("/account")
public class AccountController {@RequestMapping("/findAccount5")public String findAccount5(String username,Model model){model.addAttribute("msg", username);return "success";}@RequestMapping("/findAccount6")public String findAccount6(String username,Integer age,Model model){model.addAttribute("msg", username+" "+age);return "success";}
}
jsp中的超链接
<a href="/account/findAccount5?username=eric">参数接收-基本数据类型</a>
<a href="/account/findAccount6?username=eric&age=22">参数接收-多个基本数据类型</a>
2. POJO类型参数绑定
-  编写pojo public class Account implements Serializable {private Integer id;private String name;private Float money;private Address address;//省略get set toString方法}public class Address implements Serializable {private String provinceName;private String cityName;//省略get set toString方法}
-  编写controller package com.by.controller;import com.by.pojo.Account; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView;@Controller @RequestMapping("/account") public class AccountController {@RequestMapping("/saveAccount")public String saveAccount(Account account, Model model){model.addAttribute("msg", account);return "success";} }
-  在index.jsp里面添加表单 <form action="account/saveAccount" method="post">账户名称:<input type="text" name="name"><br/>账户金额:<input type="text" name="money"><br/>账户省份:<input type="text" name="address.provinceName"><br/>账户城市:<input type="text" name="address.cityName"><br/><input type="submit" value="保存"> </form>
3. restful
-  restful概述: (Representational State Transfer,表现层状态转移):URL定位资源时,用HTTP动词(GET,POST,DELETE,PUT)描述操作 
restful风格URL
-  在Restful之前的操作: 
 http://127.0.0.1/user/query?id=1 根据用户id查询用户数据
 http://127.0.0.1/user/save 新增用户
 http://127.0.0.1/user/update?id=1 修改用户信息
 http://127.0.0.1/user/delete?id=1 删除用户信息
-  RESTful用法: 
 http://127.0.0.1/user/1 GET 根据用户id查询用户数据
 http://127.0.0.1/user POST 新增用户
 http://127.0.0.1/user PUT 修改用户信息
 http://127.0.0.1/user/1 DELETE 删除用户信息
-  RESTful总结: Restful风格就是请求url统一,根据不同的请求方式,请求不同的后台方法。如果需要携带参数,在url上使用/{}占位符。 
@PathVaribale
-  作用 用于绑定url中的占位符。例如:/account/{id},这个{id}就是url占位符 url支持占位符是spring3.0之后加入的,是springmvc支持rest风格url的重要标志。 
-  描述需要使用指定的请求方式来请求该方法 @Controller @RequestMapping("/account") public class AccountController {@RequestMapping(value="/findAccount7/{id}")public String findAccount11(@PathVariable Integer id, Model model){model.addAttribute("msg", id);return "success";} }
-  测试:在index.jsp里面定义超链接 <a href="/account/findAccount7/123">restful传参</a><br>
4.JSON接收
jsp
  $.ajax({type:"post",url:"/account/findAccount",contentType:"application/json;charset=UTF-8",data:'{"id":1,"name":"张二狗","money":999.0}',success:function(data){//{id:2, name:铁柱, money:100}alert(data.name);}})
Controller
       @RequestMapping("/findAccount")@ResponseBodypublic Account findAccount(@RequestBody Account account){return account;}