BeanUtils应用,tojavabean
2016-10-16 16:40
323 查看
package com.bochy.tojavabean; import java.util.HashMap; import java.util.Map; import org.apache.commons.beanutils.locale.converters.DateLocaleConverter; /** * 封装的用户注册表单bean,用来接收register.jsp中的表单输入项的值 * RegisterFormBean中的属性与register.jsp中的表单输入项的name一一对应 * RegisterFormBean的职责除了负责接收register.jsp中的表单输入项的值之外还担任着校验表单输入项的值的合法性 * * @author gacl * */ public class RegisterFormBean { // RegisterFormBean中的属性与register.jsp中的表单输入项的name一一对应 // <input type="text" name="userName"/> private String userName; // <input type="password" name="userPwd"/> private String userPwd; // <input type="password" name="confirmPwd"/> private String confirmPwd; // <input type="text" name="email"/> private String email; // <input type="text" name="birthday"/> private String birthday; @Override public String toString() { return "RegisterFormBean [userName=" + userName + ", userPwd=" + userPwd + ", confirmPwd=" + confirmPwd + ", email=" + email + ", birthday=" + birthday + ", errors=" + errors + "]"; } /** * 存储校验不通过时给用户的错误提示信息 */ private Map<String, String> errors = new HashMap<String, String>(); public Map<String, String> getErrors() { return errors; } public void setErrors(Map<String, String> errors) { this.errors = errors; } /* * validate方法负责校验表单输入项 表单输入项校验规则: private String userName; * 用户名不能为空,并且要是3-8的字母 abcdABcd private String userPwd; 密码不能为空,并且要是3-8的数字 * private String confirmPwd; 两次密码要一致 private String email; * 可以为空,不为空要是一个合法的邮箱 private String birthday; 可以为空,不为空时,要是一个合法的日期 */ public boolean validate() { boolean isOk = true; if (this.userName == null || this.userName.trim().equals("")) { isOk = false; errors.put("userName", "用户名不能为空!!"); } else { if (!this.userName.matches("[a-zA-Z]{3,8}")) { isOk = false; errors.put("userName", "用户名必须是3-8位的字母!!"); } } if (this.userPwd == null || this.userPwd.trim().equals("")) { isOk = false; errors.put("userPwd", "密码不能为空!!"); } else { if (!this.userPwd.matches("\\d{3,8}")) { isOk = false; errors.put("userPwd", "密码必须是3-8位的数字!!"); } } // private String password2; 两次密码要一致 if (this.confirmPwd != null) { if (!this.confirmPwd.equals(this.userPwd)) { isOk = false; errors.put("confirmPwd", "两次密码不一致!!"); } } // private String email; 可以为空,不为空要是一个合法的邮箱 if (this.email != null && !this.email.trim().equals("")) { if (!this.email.matches("\\w+@\\w+(\\.\\w+)+")) { isOk = false; errors.put("email", "邮箱不是一个合法邮箱!!"); } } // private String birthday; 可以为空,不为空时,要是一个合法的日期 if (this.birthday != null && !this.birthday.trim().equals("")) { try { DateLocaleConverter conver = new DateLocaleConverter(); conver.convert(this.birthday); } catch (Exception e) { isOk = false; errors.put("birthday", "生日必须要是一个日期!!"); } } return isOk; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getUserPwd() { return userPwd; } public void setUserPwd(String userPwd) { this.userPwd = userPwd; } public String getConfirmPwd() { return confirmPwd; } public void setConfirmPwd(String confirmPwd) { this.confirmPwd = confirmPwd; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getBirthday() { return birthday; } public void setBirthday(String birthday) { this.birthday = birthday; } }
package com.bochy.tojavabean; import java.io.Serializable; import java.util.Date; /** * @author gacl 用户实体类 */ public class User implements Serializable { private static final long serialVersionUID = -4313782718477229465L; private String test; // 用户ID private String id; // 用户名 private String userName; // 用户密码 private String userPwd; // 用户邮箱 private String email; // 用户生日 private Date birthday; public String getId() { return id; } public String getTest() { return test; } public void setTest(String test) { this.test = test; } public void setId(String id) { this.id = id; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getUserPwd() { return userPwd; } public void setUserPwd(String userPwd) { this.userPwd = userPwd; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } @Override public String toString() { return "User [test=" + test + ", id=" + id + ", userName=" + userName + ", userPwd=" + userPwd + ", email=" + email + ", birthday=" + birthday + "]"; } }
package com.bochy.tojavabean; import java.util.Date; import javax.servlet.http.HttpServlet; import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.ConvertUtils; import org.apache.commons.beanutils.locale.converters.DateLocaleConverter; /** * 处理用户注册的Servlet * * RegisterFormBean [userName=userName, userPwd=12345678, confirmPwd=null, * email=1@234.com, birthday=Sun Oct 16 16:34:59 CST 2016, errors={}] * * * */ public class RegisterServlet extends HttpServlet { public static void main(String[] args) { // 将客户端提交的表单数据封装到RegisterFormBean对象中 RegisterFormBean formbean = new RegisterFormBean(); formbean.setBirthday("2000-02-02"); formbean.setEmail("1@234.com"); formbean.setUserName("xlj"); formbean.setUserPwd("12345678"); User user = new User(); try { BeanUtils.setProperty(formbean, "userName", "userName"); ConvertUtils.register(new DateLocaleConverter(), Date.class); BeanUtils.copyProperties(user, formbean); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } // 把表单的数据填充到javabean中 System.out.println(user.toString()); } }
相关文章推荐
- java-在应用中获取spring定义的bean
- javabean基础应用
- 使用beanUtils操纵javabean
- 在JSP页面中的应用JavaBean
- Hibernate中HQL语句查询指定字段值报错:ClassCastException: [java.lang.Object; cannot be cast to bean.PersonStatic
- BeanUtils和Cglib的Java Bean属性copy功能的性能比较
- java.bean.PropertyDescriptor及其工具beanutils的学习
- 泛型、JavaBean内省、beanutils工具包
- java-在应用中获取spring定义的bean
- Java toString()在多继承关系中的应用
- com.casinocity.bean.GameCategory cannot be cast to java.lang.Comparable
- 在JSP页面中的应用JavaBean
- 【JAVA】java反射应用,给bean里面循环填入值
- 黑马程序员------java中的反射,beanutils,注解的应用。
- java-在应用中获取spring定义的bean
- 【Java】Beanutils-No origin bean specified问题分析
- Commons-BeanUtils动态bean在项目中的应用
- JSP开发中的JavaBean的应用以及部署
- javaBean类,以及Sun的java内省机制与apache的BeanUtils框架/工具简单应用
- 使用BeanUtils工具封装javaBean