表单参数的获取和封装

维护表单参数获取问题
维护问题:
     * 表单参数接收问题
     * 如果表单参数改变,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[]

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值