这个类的功能是把request里面的数据,封装到指定的javabean,需要导入BeanUtils工具包
下面的是html里面的属性
<form action="/day8/servlet/Request2Bean" method="post"> <table> <tr><td>用户名</td><td><input type="text" name="name"></td></tr> <tr><td>年龄</td><td><input type="text" name="password"></td></tr> <tr><td>生日</td><td><input type="text" name="date"></td></tr> </table> <input type="submit" value="提交"> </form>
封装数据的javabean,User类
package com.itcast.javabean; import java.util.Date; public class User { private String name; private int age; private Date date; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } @Override public String toString() { return "User [age=" + age + ", date=" + date + ", name=" + name + "]"; } }
把request数据装到javabean中的工具类
package com.itcast.utils; import java.util.Date; import java.util.Enumeration; import javax.servlet.http.HttpServletRequest; import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.ConvertUtils; import org.apache.commons.beanutils.converters.DateConverter; public class WebUtils { public static <T> T Requst2Bean(HttpServletRequest request, Class<T> bean) { T t = null; try { t = bean.newInstance(); Enumeration parameterNames = request.getParameterNames(); DateConverter convert = new DateConverter();//写一个日期转换器 String[] patterns = { "yyyyMMdd", "yyyy-MM-dd" };//限定日期的格式字符串数组 convert.setPatterns(patterns); ConvertUtils.register(convert, Date.class); while (parameterNames.hasMoreElements()) { String name = (String) parameterNames.nextElement(); String value = request.getParameter(name); BeanUtils.setProperty(t, name, value);//使用BeanUtils来设置对象属性的值 } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return t; } }