您的位置:首页 > 理论基础 > 计算机网络

BeanUtil使用例子:解析并转化HttpServletRequest到Bean的全面测试

2009-03-27 07:05 357 查看
在Web表单提交后解析表单时,一般框架都提供了某种方式可以自动从表单映射到我们的POJO类里面。属性会被自动填充的。

但如果我们在某个需求里,真的需要用程序来解析的话,那么如果有几百个属性,可就是一个噩梦了。

我们可以用java的反射机制来自己实现,也可以通过现成的辅助类库实现。

这里我介绍的是apache的 BeanUtil库的一个实现方式,我增强了默认的解析类,加上了日期的自定义解析。

1 先看解析类

1 <%@page c%>

2 <%@page import="com.laozizhu.util.*,com.laozizhu.util.test.*"%>

3 <%

4   String title = "老紫竹研究室类库演示程序-基础测试:整数、浮点数、字符串、日期、多选数字、布尔";

5 %>

6 <html>

7 <head>

8 <title><%=title%></title>

9 </head>

<body>

<%

request.setCharacterEncoding("UTF-8");

Base b = new Base();

RequestToBean.populate(request, b);

%>

<%=title%>

<br />

编号:<%=b.getId()%><br />

名字:<%=b.getName()%><br />

身高:<%=b.getHeight()%><br />

体重:<%=b.getWeight()%><br />

生日:<%=b.getBirthday()%><br />

婚否:<%=b.isMarried()%><br />

数字:<%

if (b.getNumberFavorite() != null)

for (int num : b.getNumberFavorite()) {

out.print(num + ",");

}

%>

<form method="post"><br />

编号:<input type="text" name="id" value="1" /><br />

名字:<input type="text" name="name" value="老紫竹" /><br />

身高:<input type="text" name="height" value="173.5" /><br />

体重:<input type="text" name="weight" value="90.3" /><br />

生日:<input type="text" name="birthday" value="2009-01-23" /><br />

婚否:<input type="radio" name="married" value="1" checked />已婚,& lt;input type="radio" name="married" value="0" />未婚<br />

数字:<br />

<%

for (int i = 0; i <= 9; i++) {

%> <input type="checkbox" name="numberFavorite" value="<%=i %>" <%=i%3==0?" checked":"" %> /><%=i%><br />

<%

}

%> <input type="submit" value="提交测试" /><br />

</form>

</body>

</html>


4 运行结果

老紫竹研究室类库演示程序-基础测试:整数、浮点数、字符串、日期、多选数字

编号:1

名字:老紫竹

身高:173.5

体重:90.3

生日:Fri Jan 23 00:01:00 CST 2009

婚否:true

数字:0,3,6,9,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: