BeanUtils应用,tojavabean

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());
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值