读书人

表奇数据自动封装到javaBean中

发布时间: 2012-11-03 10:57:44 作者: rapoo

表单数据自动封装到javaBean中

页面表单数据的自动封装到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;/*** 取得request对象中* 所有的参数值并生成* 一个相应的对象返回* @author admin**/public class ParseHtml {/*** * @param request存储着表单的HttpServletRequest对象* @param bean要封装的表单Bean* @return 封装好的表单Bean*/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;}}

?

生成表单页面

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head>    <base href="<%=basePath%>">        <title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body>    <form action="Dispose" method="post">    <input type=text name="name"><br>    <input type=text name="sex"><br>    <input type=submit value='submit'>    </form></body></html>

?

定义一个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 {/*** Constructor of the object.*/public Dispose() {   super();}/*** Destruction of the servlet. <br>*/public void destroy() {   super.destroy(); // Just puts "destroy" string in log   // Put your code here}/*** The doGet method of the servlet. <br>** This method is called when a form has its tag value method equals to get.* * @param request the request send by the client to the server* @param response the response send by the server to the client* @throws ServletException if an error occurred* @throws IOException if an error occurred*/public void doGet(HttpServletRequest request, HttpServletResponse response)    throws ServletException, IOException {    this.doPost(request, response);}/*** The doPost method of the servlet. <br>** This method is called when a form has its tag value method equals to post.* * @param request the request send by the client to the server* @param response the response send by the server to the client* @throws ServletException if an error occurred* @throws IOException if an error occurred*/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());   }/*** Initialization of the servlet. <br>** @throws ServletException if an error occurs*/public void init() throws ServletException {   // Put your code here}}

?

?

本文转载自:http://hi.baidu.com/tianlong1569/blog/item/7d6cff03317027723812bb9b.html

读书人网 >Web前端

热点推荐