• 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html
  • 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html

Javaweb网上商城项目实战(6)测试MyBeanUtils接收表单参数

项目实战 Geekerstar 11个月前 (05-16) 297次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]

测试前的准备工作

上一节已经完成了准备工作,设置了表单的各种属性,我们的请求已经能够发出来,接下来我们再服务端的UserServlet新建一个userRegist。
1、修改regist.jsp,将regist改为UserRegist。

		<form class="form-horizontal" style="margin-top:5px;" action="${pageContext.request.contextPath}/UserServlet?method=UserRegist" method="post">

2、回到UserServlet,实现userRegist方法

public String userRegist(HttpServletRequest request, HttpServletResponse response) throws Exception {
		// 接收表单参数
		Map<String, String[]> map = request.getParameterMap();
		User user = new User();
		MyBeanUtils.populate(user, map);//接下来我们来测试一下MyBeanUtils,体会工具类的方便快捷
                System.out.println(user);
		
		return "";
	}

这里我们先暂停一下我们的项目来对MyBeanUtils工具类进行测试,以深入理解我们是如何获取表单参数的。

测试MyBeanUtils

编写代码如下,最好亲自动手,体会编码过程与原理。

package com.geekerstar.store.test;

import java.lang.reflect.InvocationTargetException;
import java.util.HashMap;
import java.util.Map;

import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.converters.DateConverter;
import org.junit.Test;

import com.geekerstar.store.domain.User;

public class TestBeanUtils {

	@Test
	public void test01() throws Exception{
		//模拟request.getParameterMap();
		Map<String,String[]> map=new HashMap<String,String[]>();
		map.put("username", new String[]{"tom"});
		map.put("password", new String[]{"1234"});
		
		//创建用户对象
		User user=new User();
		//利用BeanUtils自动填充数据
		BeanUtils.populate(user, map);
		//打印user对象
		System.out.println(user);
		
	}
	
	@Test
	public void test02() throws Exception{
		//模拟request.getParameterMap();
		Map<String,String[]> map=new HashMap<String,String[]>();
		map.put("username", new String[]{"tom"});
		map.put("password", new String[]{"1234"});
		map.put("birthday", new String[]{"1992-3-3"});
        User user=new User();
		
		
		//BeanUtils找到User.class文件上有setBirthday这个方法,要执行,将"1992-3-3"转换为时间日期类型
		//BeanUtils不知道这个字符串的时间格式是什么?以下三行代码设置时间转换格式
		// 1_创建时间类型的转换器
		DateConverter dt = new DateConverter();
		// 2_设置转换的格式
		dt.setPattern("yyyy-MM-dd");
		// 3_注册转换器
		ConvertUtils.register(dt, java.util.Date.class);
		
		BeanUtils.populate(user, map);
		System.out.println(user);
		
	}
}

进行单元测试,观察数据,检验我们的MyBeanUtils工具类

源码下载

下载地址
丨极客文库, 版权所有丨如未注明 , 均为原创丨
本网站采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行授权
转载请注明原文链接:Javaweb网上商城项目实战(6)测试MyBeanUtils接收表单参数
喜欢 (0)
[247507792@qq.com]
分享 (0)
Geekerstar
关于作者:
本站技术支持

您必须 登录 才能发表评论!

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00