`
bubble
  • 浏览: 148063 次
  • 性别: 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.

相关推荐

    模拟Struts功能--最后的一些实体bean以及源码下载

    在"模拟Struts功能--最后的一些实体bean以及源码下载"这个主题中,我们可以深入探讨Struts框架的核心概念、实体Bean的作用以及如何通过源码学习Struts的工作原理。 首先,让我们了解一下Struts框架的基础。Struts...

    Struts 1.x中批量封装对象

    批量封装对象是Struts 1.x中处理大量数据时常用的一个技巧,它能有效地提高开发效率并减少代码量。 首先,让我们理解什么是批量封装。在处理表单提交或者数据导入等场景时,我们可能需要一次性处理多个相似的对象。...

    struts1&struts2

    Action类需要继承`org.apache.struts.action.Action`,并且表单数据通常封装在FormBean中。为了获取这些数据,开发者需要将Bean存入Page、Request或Session范围。 - **Struts2** 则是一个pull-MVC架构,它允许...

    struts 数据源配置

    通过本文介绍,我们了解到在Struts框架中配置数据源的具体方法,特别是使用`org.apache.commons.dbcp.BasicDataSource`这一高效的数据源实现。合理配置数据源不仅能够提升应用性能,还能简化数据库操作流程,为...

    Spring+ibatis+struts框架整合+springmvc数据接口封装含数据表可直接运行

    标题中的"Spring+ibatis+struts框架整合+springmvc数据接口封装含数据表可直接运行"揭示了这个项目是关于使用三个主流的Java Web开发框架——Spring、iBatis和Struts进行集成,并且结合Spring MVC实现了数据接口的...

    Struts标签-bean标签-源代码

    bean标签可以帮助我们在JSP页面中创建、读取、更新以及销毁JavaBean对象,使得数据与视图的交互变得更加简单。 以下是bean标签库中常用的几个标签及其用法: 1. `&lt;bean:define&gt;`:此标签用于在JSP页面范围内定义一...

    struts1 html&&bean&&logic 标签

    配置文件定义了请求如何映射到特定的Action,ActionForm是封装用户输入数据的对象,Action是执行业务逻辑的类,而ActionMapping则负责映射Action和URL之间的关系。 在提供的链接中,博客作者可能详细讨论了如何在...

    JSF 资源 managed bean 课件

    - **数据绑定**:可以直接将表单字段与Bean的属性进行绑定,从而简化数据处理流程。 - **事件监听**:可以定义监听器来响应特定的事件,如页面加载或表单提交。 #### 七、案例分析 - **代码示例**:文档中提到的...

    自己动手写STRUTS 源代码

    本资源提供了自己动手编写Struts源代码的实践过程,这是一次深入理解Struts工作原理的绝佳机会。下面将详细阐述Struts框架的核心概念、主要组件以及它们的功能。 1. **MVC设计模式**:Struts是MVC设计模式的一个...

    struts in action完整中文版

    3. **Form Bean**:用于封装用户输入的数据,通常与JSP表单字段对应,提供数据验证功能。 4. **Tiles**:Struts的视图组件,允许开发者创建可重用的页面布局和组件,提高了视图层的灵活性。 5. **Interceptor...

    Bean标签库,用法及实例说明

    根据给定的文件信息,我们可以深入探讨Bean标签库在JavaServer Pages (JSP) 和 Struts 框架中的应用及其重要性。 ### Bean标签库简介 Bean标签库是Struts框架的一部分,它提供了一系列用于操作JavaBeans的标签。...

    张孝祥Struts视频源代码

    Struts提供了各种标签库,如struts-tiles和struts-bean,以简化视图的开发。 6. **Tiles**:是Struts的一个扩展,允许开发者定义可重用的页面布局,增强了视图的结构化管理。 在张孝祥的视频教程中,可能涵盖了...

    Spring封装其他框架知识积累

    ### Spring封装其他框架知识积累 #### 一、Spring与Struts1集成 在Spring与Struts1集成的过程中,主要是利用Spring来管理Struts1中的Action对象。通过这种方式,可以更好地利用Spring的IoC(Inverse of Control,...

    struts1.2.9.rar

    3. **Form Beans**:Struts中的表单bean是用来封装用户输入数据的Java对象。它们与HTML表单字段相对应,并在Action类中进行验证和处理。 4. **JSP和Taglibs**:Struts提供了丰富的标签库,如logic、bean、html等,...

    excel导入导出bean和action

    Bean通常是指业务对象或数据载体,而Action则通常是Struts框架中的概念,用于处理用户的请求并执行相应的业务逻辑。 1. **Excel导入**:这个过程涉及读取Excel文件并将其数据转换为程序可处理的数据结构。Java中...

    集成Tomcat与Struts

    - **创建Form Bean**:Form Bean 负责封装用户输入的数据。 - **编写Action类**:Action类是控制层的核心,负责处理用户的请求并调用相应的业务逻辑。 - **编写JSP页面**:这些页面作为视图,展示数据给用户。 4...

    Struts书籍 Struts_In_Action_中文版

    本书《Struts In Action》中文版旨在帮助读者全面掌握Struts框架的应用与开发技巧,是一本适合初学者和有一定经验开发者阅读的技术书籍。本书作者Ted Husted,由Eric Liu(铁手)翻译。 **1.1.1 谁创建了Struts?** ...

    Struts基本知识培训

    - **创建Model组件**:创建JavaBeans类,封装业务数据和逻辑。 - **创建View组件**:设计JSP页面,使用EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)来显示Model中的数据。 - **创建...

    struts1入门案例

    6. **JSP视图**:展示用户界面,通常使用Struts1提供的标签库,如`, `&lt;bean:`, `等,它们简化了JSP页面的编写,方便与Action和Form Bean交互。 7. **请求流转**:用户发送请求到服务器,被ActionServlet捕获,然后...

Global site tag (gtag.js) - Google Analytics