- 接受servlet的内置对象
- 接受请求路径中的占位符
- 接受普通的请求参数
- 直接获取cookie
- pojo对象的绑定。
- java基本数据类型。
- 集合的映射
第一个:绑定servlet内置对象
在Controller中获取Servlet的内置对象(Request、 Response、Session)是非常简单的,如下:
public void test (HttpServletRequest request) {-}
public void test (HttpServ1etResponse response) {_}
public void test (HttpSession session) {--}
获取servlet中的内置对象。request , response. session需要那个对象,就在方法添加某个对象的参数即可
第二个:@PathVariable获取占位符中的参数
通过@PathVariable可以绑定占位符参数到方法参数中,例如:@PathVariable(' "userld") Long userld
@PathVariable 也可以获取到占位符中的参数信息(注意:都给标注出来,就不会出现问题,简单一句,占位,参数都保持一至)
注意:是否把我们每个方法参数中的名字编译到我们class文件中去,如果@PathVarialbe,如果没有编译就会报错,不要省略
第三个:@RequestParam
注意:当defaultValue有值的时候,required自动修改成false。
当修改成false的时候参数username可以传也可以不传,如果没有传参,默认走defaultValue里的值
第四个:@CookieValue
知识点回顾:
如何获取指定的cookie值
Cookie[] cookies = request.getCookies();
对数组进行遍历,根据cookie中的name 来找到对应的cookie
for(Cookie cookie : cookies){
cookie.getName().eq(“abc”);
cookie.getValue();获取cookie中的值
}
可以通过springmvc的注解就可以直接获取到cookie
注意:
Jsessionid是session的标识,存入在cookie里面
访问jsp页面的时候cookie被创建,第一次创建request.getsession的时候(第一次获取session对象的时候),一定是已经存在的cookie才有jessionid
案例:
第五种:POJO对象绑定参数
SpringMVC会将请求过来的参数名和POJO实体中的属性名进行匹配,如果名称一致,将把值填充到对象中。
示例:
创建一个实体类
测试:(这里今天通过url进行传参)
第六个:Java的基本数据类型绑定
表单代码:
<form action="/demos/demo1.action" method="post">
<div>姓名:</div>
<div><input name="name" value="张三"/></div>
<div class="clear"></div>
<div>年龄:</div>
<div><input name="age" value="20"/></div>
<div class="clear"></div>
<div>收入:</div>
<div><input name="income" value="100000"/></div>
<div class="clear"></div>
<div>结婚:</div>
<div>
<input type="radio" name="isMarried" value="true" checked="checked"/>是
<input type="radio" name="isMarried" value="false"/>否</div>
<div class="clear"></div>
<div>兴趣:</div>
<div>
<input type="checkbox" name="interests" value="听歌" checked="checked"/>听歌
<input type="checkbox" name="interests" value="书法" checked="checked"/>书法
<input type="checkbox" name="interests" value="看电影" checked="checked"/>看电影
</div>
<div class="clear"></div>
<div><input type="submit" value="提交表单"/></div>
</form>
第七个:集合List绑定
如果方法需要接受的list集合,不能够直接在方法中书写List
List的绑定,需要将List对象包装到一个类中才能绑定
要求:表单中的name的值
要求表单name的值, 和封装的对象中的结合的属性名一致。
如:
<form action="/hello2/show16.do">
用户1:<input type="text" name="users[0].userName"/><br/>
用户2:<input type="text" name="users[1].userName"/><br/>
用户3:<input type="text" name="users[2].userName"/><br/>
<input type="submit" value="测试"/>
</form>
类:
把list封装到一个(UserForm)对象中
这里采用了pojo自动绑定