`
bubble
  • 浏览: 146037 次
  • 性别: Icon_minigender_1
  • 来自: 辽宁
社区版块
存档分类
最新评论

以前没用struts的时候我们这样自己封装bean(超级简化版的bean数据封装)

阅读更多
没有用struts的时候这样做也很方便,呵呵,屡试不爽,超级简化版的bean数据封装
主要是自己写了一个这样的方法:
public static void setVOFromForm(HttpServletRequest request, Object model, String n)
    {
        try
        {
            Class class1 = model.getClass();//得到相应model的vo类
            Method method1[] = class1.getMethods();//得到该vo类的全部方法
            for(int i = 0; i < method1.length; i++)
            {
                String name = method1[i].getName();//得到当前方法的名字
                if(name.startsWith("set"))//是否为set开始的方法,即是否是set方法
                {
                    Class cc[] = method1[i].getParameterTypes();//得到该方法的参数类型数组
                    if(cc.length == 1)//是否参数唯一
                    {
                        String type = cc[0].getName();//得到参数类型
                        String param = request.getParameter(name.substring(3) + n);//当n=“”时,从request钟得到名字为该方法名第4位开始的字符串的变量值,
                        if(param != null && !param.equals(""))//不为空或者null
                            if(type.equals("java.lang.String"))//判断参数类型
                                method1[i].invoke(model, new Object[]{param});//将得到的变量值注入vo类model的方法method1[i]
                            else if(type.equals("int") || type.equals("java.lang.Integer"))
                                method1[i].invoke(model, new Object[]{new Integer(param)});
                            else if(type.equals("long") || type.equals("java.lang.Long"))
                                method1[i].invoke(model, new Object[]{new Long(param)});
                            else if(type.equals("boolean") || type.equals("java.lang.Boolean"))
                                method1[i].invoke(model, new Object[]{Boolean.valueOf(param)});
                            else if(type.equals("java.sql.Date"))
                            {
                                SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
                                java.util.Date d = df.parse(param);
                                if(d != null)
                                    method1[i].invoke(model, new Object[]{new Date(d.getTime())});
                            }
                    }
                }
            }

        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }


用的时候这样用就可以了:

RsemployeecheckVO ecvo = new  RsemployeecheckVO(); 
DaoUtil.setVOFromForm(request, ecvo, ""); //将数据封装入ecvo中


jsp页面也和struts一样,需要变量名与bean中的变量名一致并且首字母大写:

<table width="80%" border="1" align="center" bordercolor="#000000" id="tblContent">
  <tr>
    <td width="14%"><div align="center">单位</div></td>
    <td colspan="3"><input name="Unit"  value="<%=PageUtil.filterNull(tivo.getUnit())%>" type="text" size="15"></td>
    <td width="14%"><div align="center">姓名</div></td>
    <td ><input name="Name" type="text"  value="<%=PageUtil.filterNull(tivo.getName())%>" size="10"></td>
  </tr>
  <tr>
    <td><div align="center">工伤结案</div></td>
    <td colspan="5"><textarea name="Injury_end" cols="40"><%=PageUtil.filterNull(tivo.getInjury_end())%></textarea></td>
  </tr>
  <tr>
    <td><div align="left">事故原因分析情况</div></td>
    <td colspan="5"><textarea name="AccidentAnalysis" cols="40"><%=PageUtil.filterNull(tivo.getAccidentAnalysis())%></textarea></td>
  </tr>
  <tr>
    <td>事故责任者受教育情况</td>
    <td colspan="5"><textarea name="AccidentEducation" cols="40"><%=PageUtil.filterNull(tivo.getAccidentEducation())%></textarea></td>
  </tr>
  <tr>
    <td>单位对事故处理情况(附:现场图,调查分析会议记录,报告书,处理决定)</td>
    <td colspan="5"><textarea name="AccidentDealing" cols="40" rows="5"><%=PageUtil.filterNull(tivo.getAccidentDealing())%></textarea></td>
  </tr>
  <tr>
    <td>防范措施落实情况</td>
    <td colspan="5"><textarea name="Carryingout" cols="40" rows="2"><%=PageUtil.filterNull(tivo.getCarryingout())%></textarea></td>
  </tr>
</table>



分享到:
评论
2 楼 kidfang 2007-12-30  
好贴赞一个
1 楼 fishinlove 2007-07-11  
有意思,借鉴ing.

相关推荐

    struts1&struts2

    2.Struts2和Struts1.x的... Struts1.x 必须继承org.apache.struts.action.Action或者其子类,表单数据封装在FormBean中。 Struts 2无须继承任何类型或实现任何接口,表单数据包含在Action中,通过Getter和Setter获取。

    struts1和struts2的区别

    Struts1.x 必须继承org.apache.struts.action.Action或者其子类,表单数据封装在FormBean中。Struts 2无须继承任何类型或实现任何接口,表单数据包含在Action中,通过Getter和Setter获取。 虽然,在理论上Struts2的...

    投票系统 struts2+JFreechart

    知识点:struts2,struts2模型驱动,Java反射,struts2插件使用,struts2与JFreeChart的集成开发,JFreeChart图表 1、开发环境:MyEclipse6.0, Struts 2.0.11, JFreeChart 1.0.9, JCommon 1.0.12,struts2-jfreechart...

    Struts原理、开发及项目实施

    Struts原理、开发及项目实施 Holen 2002-9-12 &lt;br/&gt;1、 摘要 2、 关键词 3、 Framework 4、 Struts的起源 5、 Struts工作原理 6、 Struts安装 7、 一个实例 8、 Struts优缺点...

    封装通用的Spring3+Struts2+MyBatis3的CRUD+条件分页查询,Spring+Quartz调度,FunctionCharts图像化工具

    封装通用的Spring3+Struts2+MyBatis3的CRUD+条件分页查询,Spring+Quartz调度,FunctionCharts图像化工具 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context=...

    (HttpServlet封装类)Action.java

    通过JAVA反射技术对HttpServlet进行简单封装,类似于struts框架,页面请求过来的参数名只需要与Action&lt;T&gt; T这个Bean里的变量对应即可,getForm()就是获得页面传过来的参数[注:当前这个只能传T里的string和int/...

    Struts标记库

    JSP视窗组件所使用的struts标记库由四类标记组成: Bean...这些标记被封装在一个普通的标记库中,在文件struts-bean.tld中定义了它的标记库描述器。Bean标记库将标记定义在四个子类别中: 创建和复制bean的标记 脚本

    Struts2 + Spring2.5 + JFreeChart 实现的投票系统,2008年高考作文评价投票

    + TouPiaoAction.java 该类用来接收用户投票的Action,并通过struts2 的模型驱动把数据封装到TouPiaoBean对象中。 //该包下的其它类为各个图表的Action类,用来返回相关图表到客户端 ...

    Spring开发指南

    Spring Bean封装机制 Bean Wrapper Bean Factory ApplicationContext Web Context Spring 高级特性 Web 应用与 MVC Spring MVC Spring MVC指南 基于模板的Web表示层技术 Web 应用中模板技术与 JSP 技术的...

    ssh2(struts2+spring2.5+hibernate3.3)自动生成模版

    对于二次开发的人员来讲,需要对自己想要指定的单表(数据库表)进行生成(bean,hbm.xml,dao.service,action)时,该插件无法做到,我想了一下,作者应该会考虑到这一点吧,因此询问该作者后,他说要购买企业版,能够达到该...

    zxl:本人的开源框架,其中包含了一系列的开源组件,xxoo已经正式更名为xmlbean-converter成为zxl框架的一部分

    struts的简单封装 mvc-hbase 适于hbase的springmvc封装 orm-common orm框架的基础包 orm-hbase hbase的orm框架 orm-security 安全框架的orm层封装 xmlbean-converter 原xxoo,用于xml和bean的简单转换

    Struts in Action中文版

    2.6.2. Struts的强项........................................................................................................58 Struts in Action 中文版 Lastest Revised:10/14/2005 10:27:00 AM ...

    领域模型_模式_框架简介

    项目的action和service都通过xml配置文件来描述这个bean,spring通过配置路径直接加载这些bean,从而来管理这些javabean)hibernate是一个数据持久化中间件,他使业务逻辑和数据实现了松耦合,并且封装了所有的数据...

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    如数据类型转换、文件上传和下载、Struts2应用的安全性、调试与性能分析、FreeMarker、Velocily、Ajax,等等。跟随作者一道深入Struts2。聆听大量来之不易的经验之谈。你对Struts2开发框架的理解和应用水平都将更上...

    ssh(structs,spring,hibernate)框架中的上传下载

     其中save(FileActionForm fileForm)方法,将封装在fileForm中的上传文件保存到数据库中,这里我们使用FileActionForm作为方法入参,FileActionForm是Web层的表单数据对象,它封装了提交表单的数据。将...

    超级有影响力霸气的Java面试题大全文档

    超级有影响力的Java面试题大全文档 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。...

    JavaServer Pages标准标签库

    JSP页面示例 本章通过如下重新编写JSP版本的、在第...对于大多数应用程序来说,最好将对数据库的调用封装到bean中。JSTL包含SQL标签,在创建已有原型的应用程序并有可能减少创建bean的开销的情况下可以使用这个标签。

Global site tag (gtag.js) - Google Analytics