springmvc中处理方法和数据绑定(PathVariable(2)、RequestParam(3,6))

  1. 接受servlet的内置对象
  2. 接受请求路径中的占位符
  3. 接受普通的请求参数
  4. 直接获取cookie
  5. pojo对象的绑定。
  6. java基本数据类型。
  7. 集合的映射

第一个:绑定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自动绑定
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章