页面表单数据的自动封装到javaBean中
先定义一个Bean类
package com.test;
public class Bean {
private String name;
private Integer sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getSex() {
return sex;
}
public void setSex(Integer sex) {
this.sex = sex;
}
}
再定义一个封装数据类用于把数据封装到Bean中
package com.test;
import
java.lang.reflect.InvocationTargetException;
import java.util.Enumeration;
import
javax.servlet.http.HttpServletRequest;
import
org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.PropertyUtils;
public class ParseHtml {
public Object parseRequest(HttpServletRequest request,Object
bean){
//取得所有参数列表
Enumeration enum =
request.getParameterNames();
//遍历所有参数列表
while(enum.hasMoreElements()){
Object obj =
enum.nextElement();
try
{
//取得这个参数在Bean中的数据类开
Class cls = PropertyUtils.getPropertyType(bean,
obj.toString());
//把相应的数据转换成对应的数据类型
Object beanValue =
ConvertUtils.convert(request.getParameter(obj.toString()),
cls);
//添冲Bean值
PropertyUtils.setProperty(bean, obj.toString(),
beanValue);
} catch
(IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch
(InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch
(NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return bean;
}
}
生成表单页面
language="java" import="java.util.*"
pageEncoding="ISO-8859-1"%>
String path = request.getContextPath();
String basePath =
request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
/p>
PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN">
href="">
My JSP 'index.jsp' startingpage
content="no-cache">
content="no-cache">
content="0">
content="keyword1,keyword2,keyword3">
method="post">
name="name">
name="sex">
value='submit'>
定义一个Action用于处理表单传过来的数据
package com.test;
import
java.io.IOException;
import java.io.PrintWriter;
import
javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Dispose extends
HttpServlet {
public Dispose() {
super();
}
public void destroy() {
super.destroy(); // Just puts
"destroy" string in log
// Put your code
here
}
public void doGet(HttpServletRequest request, HttpServletResponse
response)
throws
ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse
response)
throws
ServletException, IOException {
//调用方法完成对表单数据封装到Bean中
Bean bean =
(Bean)new ParseHtml().parseRequest(request, new Bean());
response.getWriter().write("name="+bean.getName()+"sex="+bean.getSex());
}
public void init() throws ServletException {
// Put your code
here
}
}