使用Java Bean获取输入框中的数据 制作一个动态网页,最关键的是后台数据的交互,在静态页面中,数据是在网页创建时就已经完成了的,而在动态页面中,数据是动态存在的,如登录后的用户名显示,这是在网页运行过程中,通过获取后台数据库中的数据,动态显示的。 在数据的获取中,可以使用request.getParameter()方法,依次获取网页中的数据,在该过程中,有个规定,网页中的参数名,实体类中的属性名,以及数据库中的关键字名必须一致。 但是在本方法中,如果使用在注册页面中,会出现代码量非常巨大的情况,还有个办法就是通过反射,先创建实体类的管理类对象,new一个map集合,将map集合转换成set集合,使用增强for循环,获取键值对,通过管理类的getDeclaredField(paramName)方法,得到一个field对象,打开属性私有属性赋值的权限。然后获取值就行,但该方法中,键值对的类型不统一,会出现错误。 因此,可以引入C3p0Util工具类以及BeanUtil工具类,首先,创建一个C3p0Util工具类,在类中书写如下代码:
public static <T>T mapToBean(Class<T> c, Map map){ try { T t = c.newInstance(); BeanUtils.populate(t,map); return t; } catch (Exception e) { throw new RuntimeException(e); } }然后再创建一个Servlet类,在doPost中书写如下代码:
request.setCharacterEncoding("utf-8"); Map<String, String[]> map = request.getParameterMap(); User user = C3p0Util.mapToBean(User.class, map); System.out.println(user);现在可以运行网页,输入内容测试代码是否成功了。 当然,在后面代码中添加一段数据库的增删改查语句,就可以实现数据库与网页的同步啦!