javabean组件提交表单的代码怎么写?如何处理表单数据?

JavaBean 是使用 Java 语言开发的一个可重用的组件,可以使用 JavaBean 减少重复代码,开发更简洁。那javabean组件提交表单的代码怎么写?下面来我们就来给大家讲解一下。

package com.Util;
import java.lang.reflect.Method;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
import org.apache.commons.lang3.time.DateUtils;
public class Request2BeanUtil
{
    /**自动匹配参数赋值到实体bean中
    * @param bean
    * @param request
    */
    public static void populate(Object bean, HttpServletRequest request)
    {
        Class clazz = bean.getClass();
        Method ms[] = clazz.getDeclaredMethods();
        String mname;
        String field;
        String fieldType;
        String value;
        Object obj = null;
        for (Method m: ms)
        {
            mname = m.getName();
            if (!mname.startsWith("set") ||
                ArrayUtils.isEmpty(m.getParameterTypes()))
            {
                continue;
            }
            try
            {
                field = mname.toLowerCase()
                    .charAt(3) + mname.substring(4, mname.length());
                value = request.getParameter(field); //注意此处要求form表单中的属性名字要求与javabean的字段名字相同
                if (StringUtils.isEmpty(value) || value == null)
                {
                    continue;
                }
                fieldType = m.getParameterTypes()[0].getName();
                //以下可以确认value为String类型
                if (String.class.getName()
                    .equals(fieldType))
                {
                    m.invoke(bean, (String) value);
                }
                else if (Integer.class.getName()
                    .equals(fieldType) && NumberUtils.isDigits((String) value))
                {
                    m.invoke(bean, Integer.valueOf((String) value));
                }
                else if (Long.class.getName()
                    .equals(fieldType) && NumberUtils.isDigits((String) value))
                {
                    m.invoke(bean, Long.valueOf((String) value));
                }
                else if (Date.class.getName()
                    .equals(fieldType))
                {
                    m.invoke(bean, DateUtils.parseDate((String) value, "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss"));
                }
                else
                {
                    m.invoke(bean, value);
                }
            }
            catch (Exception e)
            {
                e.printStackTrace();
                continue;
            }
        }
    }
}

如何处理表单数据?

操纵HTML表单步骤:

写JSP原文件,创建一些HTML的表单并命名。

在Java文件里写Bean,定义属性,GET或者SET方法来配合已经被指定好名字的表单。

回到JSP原文件中,增加jsp:useBean标签来创建一个或者调用一个现成的Bean。

增加jsp:setProperty标签设置HTML表单中需要SET方法的Bean的属性。

增加jsp:getProperty标签设置HTML表单中需要GET方法的Bean的属性。

如果需要处理更多的用户数据,用request对象。

eg1. 用户通过form表单提交数据,提交的数据被处理后,再在Jsp文件中显示处理

usingGetParameter.html让用户输入个人信息;

usingGetParameter.jsp将其一一输出;

eg2. 使用Jsp+JavaBean形式处理表单

showInfo.jsp让用户输入个人信息;

服务器取得这些信息之后,利用show.java这个Javabean中的方法将其一一输出;

另外,通常一个标准的JavaBean有以下特征(编写规范):

一定使用了package语句进行打包;

JavaBean是一个public类型的类;

有一个无参数的构造方法;

属性一般是私有的(即用private修饰);

对属性值xxx的获取有相应的getXxx()方法,并且此方法是公有的(即用public修饰),若要获取的属性xxx为boolean类型则可以使用isXxx()方法;

对属性值xxx的设置有相应的setXxx()方法,并且此方法也是公有的(即用public修饰);

在JavaBean语法中,实际上最大的特点就在于与表单的交互上,所以对于处理表单数据,大家一定要多操作几遍。最后大家如果想要了解更多其他工具教程知识,敬请关注奇Q工具网。

推荐阅读:

数据库优化面试题有哪些?数据库优化面试题及答案

java入门基础课程有哪些?java入门基础课程分享

java有哪些语言规范?写java程序要注意什么?