维护表单参数获取问题
维护问题:
* 表单参数接收问题
* 如果表单参数改变,Servlet代码是必须改变
表单参数的接收方式(get/post):
request.xxx();请求
1.getParameter(String name); 返回某个表单参数值。
返回类型String
如果找不到,返回null
只适合获取单值。针对性获取某一个表单参数
2.getParameterValues(String name); 返回某个表单参数值。
返回类型String[]
如果找不到,返回null
适合获取一个参数多个值。针对性获取某一个表单参数
例如:复选框,选择框多选形式
例如:表单参数:
Hobby=sleep&Hobby=code
获取到的数组:
{“sleep”,”code”}
3.getParameterMap(); 返回整个表单所有参数名和参数值
返回类型Map<String,String[]>
Key=参数名
Value=参数值 数组
例如:
username=zhangsan&password=123&sex=man&hobby=sleep&hobby=code&hobby=read
获取到的数据:
username=[zhangsan]
password=[123]
sex=[man]
hobby=[sleep, code, read]
如果要获取的是整个表单参数,一般都是使用该方法。
使用getParameterMap()
接下来的问题:
如何把一个map的数据全部转存到对应的javaBean中?
解决:
//如何把一个map的数据全部转存到对应的javaBean中 DBUtils
//1、遍历map
//2、遍历中,反射获取对应的setXxx方法。
//Xxx: map:key=username Username getMethod("set"+"Username",String.class);
//3、反射执行对应的setXxx方法,invoke(obj,Arrays.toString(map.get(key)));
问题:
代码实现太麻烦
解决:
BeanUtils : 把一个map的数据填充到一个javaBean中
用法:
导包:两个包
API:
populate(Object javaBean,Map param); 填充
把map数据填充进javaBean中
javaBean:要填充哪个JavaBean
param:就是用哪个map填充
例如:User user_param = new User();
BeanUtils.populate(user_param, request.getParameterMap());
Populate方法就是用map填充JavaBean
注意:
表单参数名必须和setXxx名字一致才可以成功填充。否则忽略不填写
表单参数值要么是String,要么String[]
维护问题:
* 表单参数接收问题
* 如果表单参数改变,Servlet代码是必须改变
表单参数的接收方式(get/post):
request.xxx();请求
1.getParameter(String name); 返回某个表单参数值。
返回类型String
如果找不到,返回null
只适合获取单值。针对性获取某一个表单参数
2.getParameterValues(String name); 返回某个表单参数值。
返回类型String[]
如果找不到,返回null
适合获取一个参数多个值。针对性获取某一个表单参数
例如:复选框,选择框多选形式
例如:表单参数:
Hobby=sleep&Hobby=code
获取到的数组:
{“sleep”,”code”}
3.getParameterMap(); 返回整个表单所有参数名和参数值
返回类型Map<String,String[]>
Key=参数名
Value=参数值 数组
例如:
username=zhangsan&password=123&sex=man&hobby=sleep&hobby=code&hobby=read
获取到的数据:
username=[zhangsan]
password=[123]
sex=[man]
hobby=[sleep, code, read]
如果要获取的是整个表单参数,一般都是使用该方法。
使用getParameterMap()
接下来的问题:
如何把一个map的数据全部转存到对应的javaBean中?
解决:
//如何把一个map的数据全部转存到对应的javaBean中 DBUtils
//1、遍历map
//2、遍历中,反射获取对应的setXxx方法。
//Xxx: map:key=username Username getMethod("set"+"Username",String.class);
//3、反射执行对应的setXxx方法,invoke(obj,Arrays.toString(map.get(key)));
问题:
代码实现太麻烦
解决:
BeanUtils : 把一个map的数据填充到一个javaBean中
用法:
导包:两个包
API:
populate(Object javaBean,Map param); 填充
把map数据填充进javaBean中
javaBean:要填充哪个JavaBean
param:就是用哪个map填充
例如:User user_param = new User();
BeanUtils.populate(user_param, request.getParameterMap());
Populate方法就是用map填充JavaBean
注意:
表单参数名必须和setXxx名字一致才可以成功填充。否则忽略不填写
表单参数值要么是String,要么String[]