1 请求参数绑定入门
表单提交数据,都是一组键值对
如果我们提交表单写的:username=hehe&password=123 (这些键值对)
我们把这个表单传过来,那么MVC框架怎么处理呢?
MVC框架 我们再Ctroller中会写方法
再方法中,假设我们写的是sayhello(String username,String password)
表单中:username=hehe&password=123
MVC框架:sayhello(String username,String password)
方法的参数和表单提交名称一致
MVC框架会自动的表单传的值赋值到方法的参数上
这就叫做请求参数的绑定!!!
请求参数的绑定支持的数据类型
基本数据类型和字符串类型
实体类型(javaBean)
集合数据类型(List,Map集合等)
再webapp底下写一个param.jsp文件(用这个来做一个请求参数的绑定)
然后写一个Controller
运行成功!
怎么把username这个值,传到后台去!
然后再对应的方法上加上String username,然后再里面输出一下结果
点击超链接:
启动运行之后,控制台显示内容:
那么我们加上password
点击超链接:
控制台输出结果:
注意: 表单里面的键值对和Controller类里面的方法的参数必须一致才行!
2 请求参数的绑定实体类型
进下来准备把数据封装到一个JavaBean里面去
首先创建一个Javabean的对象,一个类(实现序列化接口)
domain包下创建类:Account
然后 implements Serializable(实现序列化接口) , get,set方法
修改param.jsp文件:
<form action="param/saveAccount" method="post">
姓名: <input type="text" name=""/><br/>
密码:<input type="text" name=""/><br/>
金额:<input type="text" name=""/><br/>
<input type="submit" value="提交"/>
</form>
1
2
3
4
5
6
那么问题来了:提交这个表单,后台把这个数据往类里面封装
要求:这个name=“xxx” name指定的值要和Java里面的属性名字一样 这是机制!!通过写这个属性的名字 去找它的set方法 , 属性名字不对应 这个set方法就找不到这个数据
然后我们在Controller中添加这个方法
然后再参数中,我们写一个Account account
我们表单提交,默认就把数据全部封装到这个Account这个对象当中
然后输出结果
然后我们运行启动:
提交结果!!!
控制台打印结果:
注意:有时候我们有其他的一种情况 Account里面还有一个User的类型,意味这Account里面还包含了User的引用类型,那么又怎么给User这个属性传值呢?
我们再创建User这个类
Account里面重新生成get,set,toString方法!!
Account里面有一个User的属性,表单能不能提交数据的时候往User这个属性里面去封装呢?
怎么编写?
我们重新运行启动一下结果显示:
3 请求参数绑定集合类型
在Accunt类中,我们把User这个属性去掉
添加List,和map方法!!
修改param.jsp文件
运行结果显示!