BeanUtils入门
来源:互联网 发布:点云数据处理算法 编辑:程序博客网 时间:2024/06/05 06:58
BeanUtils入门
- BeanUtils入门
- 基本概述
- 常用API
- 封装表单提交基本步骤
- 创建JavaBean
- Servlet获取表单数据
- 表单
- 获取表单数据
- 编写工具类
- 测试转换工具
- 测试
基本概述
BeanUtils 是 Apache commons组件的成员之一,主要用于简化JavaBean封装数据的操作。它可以给JavaBean封装一个字符串数据,也可以将一个表单提交的所有数据封装到JavaBean中。
PS:下载地址:https://github.com/apache/commons-beanutils/
常用API
BeanUtils工具常用工具类有两个:BeanUtils、ConvertUtils。BeanUtils用于封装数据,ConvertUtils用于处理类型转换,常用API如下:
populate(Object bean, Map<String,String[]> properties)
将Map数据封装到指定Javabean中,一般用于将表单的所有数据封装到javabean ConvertUtils register(Converter converter, Class clazz)
注册类型转换器封装表单提交基本步骤
创建JavaBean
package com.pc.domain;import java.util.Date;/** * 用户Bean * * @author Switch * @data 2016年10月11日 * @version V1.0 */public class User { private Integer id; private String userName; private String password; private String sex; private String hobby; private Date birthday; // 无参构造方法 public User() { } // 设置器和获取器 public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getHobby() { return hobby; } public void setHobby(String hobby) { this.hobby = hobby; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } @Override public String toString() { return "User [id=" + id + ", userName=" + userName + ", password=" + password + ", sex=" + sex + ", hobby=" + hobby + ", birthday=" + birthday + "]"; }}
Servlet获取表单数据
表单
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html><html> <head> <meta charset=UTF-8"> <title>注册页面2</title> </head> <body> <div align="center" style="position: relative; top: 100px;"> <form action="TestBeanServlet" method="post"> 用户名:<input type="text" name="userName" /><br /> 密码:<input type="password" name="password" /><br /> 性别:<input type="radio" name="sex" value="男" />男 <input type="radio" name="usex" value="女" />女<br /> 爱好:<input type="checkbox" name="hobby" value="蹦迪" />蹦迪 <input type="checkbox" name="hobby" value="攀岩" />攀岩 <input type="checkbox" name="hobby" value="蹦极" />蹦极<br /> 生日:<input type="text" name="birthday" /><br/> <input type="submit" value="注册" /> </form> </div> </body></html>
获取表单数据
package com.pc.beanutils;import java.io.IOException;import java.util.Map;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * 测试BeanUtils工具 * * @author Switch * @data 2016年10月11日 * @version V1.0 */public class TestBeanServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); request.setCharacterEncoding("utf-8"); // 获取表单数据集 Map<String, String[]> formMap = request.getParameterMap(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }}
编写工具类
package com.pc.utils;import java.util.Date;import java.util.Map;import org.apache.commons.beanutils.BeanUtils;import org.apache.commons.beanutils.ConvertUtils;import org.apache.commons.beanutils.converters.DateConverter;/** * Bean封装工具类 * * @author Switch * @data 2016年10月11日 * @version V1.0 */public class MyBeanUtils { public static <T> T populate(Class<T> beanClass, Map<String, String[]> props) throws Exception { // 使用反射创建实例 T bean = beanClass.newInstance(); // 创建BeanUtils提供的时间转换器 DateConverter dateConverter = new DateConverter(); // 设置转换格式 dateConverter.setPatterns(new String[] { "yyyy-MM-dd", "yyyy/MM/dd", "yyyyMMdd" }); // 注册转换器 ConvertUtils.register(dateConverter, Date.class); // 封装数据 BeanUtils.populate(bean, props); return bean; }}
测试转换工具
package com.pc.beanutils;import java.io.IOException;import java.util.Arrays;import java.util.Map;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.pc.domain.User;import com.pc.utils.MyBeanUtils;/** * 测试BeanUtils工具 * * @author Switch * @data 2016年10月11日 * @version V1.0 */public class TestBeanServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { response.setContentType("text/html;charset=utf-8"); request.setCharacterEncoding("utf-8"); // 获取表单数据集 Map<String, String[]> formMap = request.getParameterMap(); // 封装数据 User user = MyBeanUtils.populate(User.class, formMap); // 处理特殊数据类型 String[] hobbies = request.getParameterValues("hobby"); // 将其转换为hobby1,hobby2,hobby3这样的String String hobby = Arrays.toString(hobbies).substring(1, Arrays.toString(hobbies).length() - 1); user.setHobby(hobby); System.out.println(user); } catch (Exception e) { e.printStackTrace(); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }}
测试
PS:GitHub:https://github.com/Switch-vov/servlet-request-test
0 0
- beanutils 入门
- BeanUtils入门
- BeanUtils入门
- beanutils
- BeanUtils
- BeanUtils
- BeanUtils
- beanutils
- beanutils
- BeanUtils
- BeanUtils
- BeanUtils
- BeanUtils
- Beanutils
- BeanUtils
- BeanUtils
- BeanUtils
- BeanUtils
- leetcode-371. Sum of Two Integers 位运算的应用,递归,按位异或a^b
- Unity3D 使用NGUI制作简易弹出窗口声音控制器
- c++this指针
- 1011笔记 mongodb+mongoose+angularjs
- Leetcode-80. Remove Duplicates from Sorted Array II
- BeanUtils入门
- 【UE4学习】15_UE4读取CSV文件并使用
- 01-JNI-基础
- 枚举类型
- 阿里一面总结
- HDU 5768 Lucky7 中国剩余定理+状压+容斥+快速乘法
- 逆向过程中全局变量和局部变量的识别
- HDU 5924 Mr. Frog’s Problem(想看证明的来)——2016CCPC东北地区大学生程序设计竞赛 - 重现赛
- 图的广度优先搜索与深度优先搜索