源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

springmvc 参数绑定总结

  • 时间:2021-02-09 22:46 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:springmvc 参数绑定总结
最近在学习springmvc,今天把springmvc 参数绑定给整理一下,也算个学习笔记吧! [b]@RequestParam 绑定单个请求[/b]
RequestMapping(value = "/form2")
  @ResponseBody
  public String form2(@RequestParam String name){
    logger.info("name=" + name );
    return "";
  }
[code]@RequestParam [/code]有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 "";
  }
[code]@RequestParam[/code]还支持数组形式
@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=李四 [b]@PathVariable 绑定uri变量值[/b]
@RequestMapping("/user/{id}")
  @ResponseBody
  public String getUser(@PathVariable Long id) {
    return String.valueOf(id);
  }
请求/user/1返回id为1 [b]@CookieValue 绑定cookie的值[/b]
 @RequestMapping("/getCookie")
  @ResponseBody
  public String getCookie(@CookieValue("JSESSIONID") String sessionId) {
    return sessionId;
  }
[b]@ModelAttribute绑定参数到命令对象[/b] 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 [b]@SessionAttributes绑定命令对象到session[/b] 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";
  }
[b]@RequestBody绑定请求的内容区数据并能进行自动类型转换等[/b] 使用RequestBody可以将json转化为对象
 @RequestMapping("/getUserByJson")
  @ResponseBody
  public String getUserByJson(@RequestBody User user){
    return user.toString();
  }
发送json格式报文
{
  "id":"123"
}
返回结果User{id='123', role=null} [b]@RequestPart绑定“multipart/data”数据[/b]
 @RequestMapping("/getFile")
  @ResponseBody
  public String getFile(@RequestPart("image") MultipartFile file){
    System.out.println(file.getName()+","+file.getSize());
    return "success";
  }
源码地址[url=http://xiazai.1sucai.cn/201703/yuanma/springmvcLearn_jb51.rar]springmvcLearn_jb51.rar[/url] 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程素材网。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部