纸上得来终觉浅,绝知此事要躬行。

一、@requestParam

//使用方法
URL:?username="sfp"
test(@RequestParam(value="username",required="true",defaultValue="sun") String username){}

required:

默认为true,url中一定要有这个参数,可以改为false

说明:url有三种形式;有defaultValue的话,required取任何值都不会报错。除此之外这两者没有任何关系

多个值的情况

//使用方法
URL:?username="sfp"&username="wj"
test(@RequestParam(value="username",required="true",defaultValue="sun") String[] username){}

二、@PathVariable

//使用方法
url:/users/123/topics/456
@RequestMapping(value="users/{userId}/topics/{topicId}")
test(@PathVariable(value="userId") int userId, @PathVariable(value="topicId") int topicId){}

只有value这一个参数

三、@CookieValue

//使用方法
test(@CookieValue("JSESSIONID") String sessionId){}
或者
test(@CookieValue("JSESSIONID") Cookie sessionId){
sessionId.getValue();
}

三个参数同上

四、@RequestHeader

//使用方法
test(@RequestHeader("User-Agent") String userAgent){}

三个参数同上

五、@ModelAttribute

如果把@ModelAttribute放在方法的注解上时,代表的是:该Controller的所有方法在调用前,先执行此@ModelAttribute方法。

1、

//添加用户时
public String add(@ModelAttribute("user") User user){}

URI模板变量如何 通过@ModelAttribute 绑定到请求对象?3.1.1可以,3.0.5不可以。

2、

@ModelAttribute("cityList")
public List<String> cityList() {
return Arrays.asList("北京", "山东");

以上代码 在 执行 功能方法 之前执行,给模型对象加一个cityList的属性,并赋初值。

3、暴露@RequestMapping方法返回值为模式数据,没看懂

4、

模型对象匿名的话,采用如下方式

public String test4(@ModelAttribute UserModel user, Model model)   //userModel
public @ModelAttribute List<String> test6() //stringList

5、@SessionAttributes

//1、在控制器类头上添加@SessionAttributes注解
@SessionAttributes(value = {"user"}) //①
public class SessionAttributeController //2、@ModelAttribute注解的方法进行表单引用对象的创建
@ModelAttribute("user") //②
public UserModel initUser() //3、@RequestMapping注解方法的@ModelAttribute注解的参数进行命令对象的绑定
@RequestMapping("/session1") //③
public String session1(@ModelAttribute("user") UserModel user) //4、通过SessionStatus的setComplete()方法清除@SessionAttributes指定的会话数据
@RequestMapping("/session2") //③
public String session(@ModelAttribute("user") UserModel user, SessionStatus status) {
if(true) { //④
status.setComplete();
}
return "success";

还挺麻烦的,孔浩讲得是session.setAttribute("loginUser", u);开涛讲的是这种?该怎么选?

数据绑定(1):不知道这些对象有什么用,先记录一下

1、

ServletRequest/HttpServletRequest
ServletResponse/HttpServletResponse
  

2、

InputStream/OutputStream
Reader/Writer

3、

WebRequest/NativeWebRequest

4、HttpSession

5、Model,Map,ModelMap

6、Errors/BindingResult

 

  

springMVC 开涛 数据绑定的更多相关文章

  1. springmvc 开涛 注解式控制器

    版本 定义处理器类 处理器映射适配器 备注 支持的注解 2.5前 controller       2.5 注解 DefaultAnnotationHandlerMapping AnnotationM ...

  2. springmvc 开涛 生产者/消费者

    媒体类型: text/html, text/plain, text/xml image/gif, image/jpg, image/png application/x-www-form-urlenco ...

  3. springmvc 开涛 拦截器

    拦截器有三个方法:preHandle, postHandle, afterCompletion ***-servlet.xml <bean name="/test" clas ...

  4. springmvc 开涛 数据验证

    两种方式:编程和声明. 编程需要:验证器,控制器,servlet.xml,错误码设置 声明需要:加jar包,控制器,跟孔浩讲得类似 错误消息设置的两种方式:硬编码:从资源文件中读取(默认,自定义).

  5. springMVC 开涛 Controller接口控制器

    通过注解实现控制器类,所以不用看Controller接口了.把之前的笔记保存下. 笔记(图片):http://pan.baidu.com/s/1mgMNDna 第三章看不太懂,3.2 3.3.只了解到 ...

  6. 【转】跟着开涛学SpringMVC

    跟着开涛学SpringMVC 第一章源代码下载 博客分类: 跟开涛学SpringMVC 跟开涛学SpringMVC  源代码请到附件中下载. 其他下载: 跟着开涛学SpringMVC 第一章源代码下载 ...

  7. SpringMVC强大的数据绑定(2)——第六章 注解式控制器详解

    SpringMVC强大的数据绑定(2)——第六章 注解式控制器详解 博客分类: 跟开涛学SpringMVC   6.6.2.@RequestParam绑定单个请求参数值 @RequestParam用于 ...

  8. 2017.2.16 开涛shiro教程-第十七章-OAuth2集成(一)服务器端

    原博客地址:http://jinnianshilongnian.iteye.com/blog/2018398 根据下载的pdf学习. 开涛shiro教程-第十七章-OAuth2集成 1.OAuth2介 ...

  9. 2017.2.12 开涛shiro教程-第七章-与Web集成

    2017.2.9 开涛shiro教程-第七章-与Web集成(一) 原博客地址:http://jinnianshilongnian.iteye.com/blog/2018398 根据下载的pdf学习. ...

随机推荐

  1. windows 2008下远程连接 redhat linux 9桌面

    如何使用windows远程控制Linux桌面? 1.查看本机是否有安装vnc(redhat linux 9默认有安装vnc) rpm -q vnc vnc-server 如果显示结果为: packag ...

  2. 关于sql 增删改

    1.更改数据库的名称 --更改数据库的名称,逗号前面是之前的,后面是改成的名 sp_renamedb student,xuesheng 2.表中有数据的情况下再添加列.删除列 --后来添加列,只能默认 ...

  3. 【Java】JVM(二)、Java垃圾收集算法

    一.标记-清除算法 算法主要分为两个步骤 1. 标记: 遍历所有的 GC Roots, 然后标记所有可达对象为存活对象 2. 清除: 遍历堆中所有对象,然后将没有标记的对象清除. 存在不足: 1. 效 ...

  4. IsPostBack用法

    可以自己定义 在页面中定义隐藏的input,设置为ispostback. <form action="" method=""> <input ...

  5. overflow: scroll

    overflow: scroll在安卓5.0的情况下,不论内容是否填满屏幕,都会强制解析出滚动条,所以最好是使用overflow: auto

  6. 清明梦超能力者黄YY(idx数组)

    清明梦超能力者黄YY https://www.nowcoder.com/acm/contest/206/I 题目描述 黄YY是一个清明梦超能力者,同时也是一个记忆大师.他能够轻松控制自己在梦中的一切, ...

  7. CentOS 7安装Samba 4.6 版本步骤及错误解决方法

    首先通过这次教训,让我养成一个好习惯:备份  备份  备份      不管做什么配置或者更改什么东西之前先做好备份! 还有我本身的一个坏毛病:眼高手低! 工厂有一台服务器,由以前的运维装的Samba ...

  8. struts工作原理(图解)

    Struts2框架的工作原理: 1.服务器启动,会加载我们的xml配置文件中的内容. 2.服务器启动之后,过来一个servlet请求,如user类中的save方法.请求过来先过过滤器(strutsPr ...

  9. 我所理解的 Laravel 请求 生命周期

    转载自:https://laravel-china.org/topics/3343/my-understanding-of-the-laravel-request-life-cycle 当你使用一个工 ...

  10. RSA生成、加密、解密、签名。

    首先,要会生成RSA密码对. https://app.alipay.com/market/document.htm?name=saomazhifu#page-23    (事例中的密钥对好像有问题,最 ...