`
xitong
  • 浏览: 6400702 次
文章分类
社区版块
存档分类
最新评论

深入研究struts中的formbean

 
阅读更多

struts中的formbean主要是用来封装(通过反射)浏览器或使用http协议的客户端提交的表单数据,我想大家在这一点上已达成共识,没什么好说的,在这层意义上,<html:text>之类表单struts tag,似乎没有什么用武之地,实际上也确实如此,使用普通的html tag可达到同样效果.但有一点很重要的是:struts tag可以自动从后台获取数据来填充页面.

下面举个例子来探讨这种机制:

现有两个action类,AAction,BAction

两个Form类,AForm,BForm

一个页面:A.jsp

这五个元素关系如下:

AAction 使用AForm,BAction使用BForm,AAction对应A.jsp,AForm和BForm都含有x和y属性,A.jsp的部分关键代码如下:

<html:form action="/BAction">

<html:text property="x" />

<html:text property="y"/>

</html:form>

当点击AAction(假设在其中使用request.setAttribute("VO",AForm),并且AForm.x=10,AForm.y=20时),出现A.jsp,但输入框x,和y空白,但如果AForm就是BForm的话,两个输入框会出现10和20,其实此时并不需要写request.setAttribute("VO",AForm),Struts有个很重要的特点是:当启动一个action时,struts实例化相应的form(如果有的话),并在forward的时候,会自动写上request.setAttrbute(formname,form),formname即你在配置文件中定义的form名,在本例中点击AAction,当AAction forward的时候,会自动写上request("AForm",AForm),所以当你想偷懒直接将form 传到页面上填充数据时,就不需要显式的这样写了.

当然如果AForm并不是BForm,你也可以这样写达到这种效果

<html:text name="VO" property="x"/>

<html:text name="VO" property="y"/>

由以上可以推断:

<html:form action="/BAction">

<html:text property="x" />

<html:text property="y"/>

</html:form>

实际上就是

<html:form action="/BAction">

<html:text name="BForm" property="x" />

<html:text name="BForm" property="y"/>

</html:form>

值得注意的是BForm可以为空,如果你将name="BForm" 改为name="VO"当然也可以是别的名,VO不能为空

由此当AForm并不是BForm的时候,我们有一种更简便的方案,即写上request.setAttribute("BForm" ,AForm),

这样就不用改页面了,但必须注意AForm必须有相应的属性

后记:

j2ee的常规做法并不推荐返回form作为jsp的数据,而应该返回一个value object或data transfer object

分享到:
评论

相关推荐

    Struts1.2动态FormBean加验证功能的一个例子

    在这个例子中,我们将深入探讨如何在Struts1.2中实现动态FormBean并添加验证功能。 首先,让我们理解什么是动态FormBean。在传统的Struts1应用中,每个ActionForm Bean都是一个Java类,它对应于HTML表单的字段,并...

    struts中文手册.rar

    2. **配置文件详解**:深入学习struts-config.xml,它是Struts的核心配置文件,包含Action、Forward、FormBean、MessageResources等元素的配置方法。 3. **控制器(Controller)**:探讨ActionServlet的工作原理,...

    基于struts的文件上传下载源代码

    Struts是一个经典的Java Web开发框架,它以Model-View-Controller(MVC)设计模式为核心,帮助开发者...通过深入研究和模仿这些代码,你可以更好地掌握Java Web开发的核心技术,并为后续更复杂的项目打下坚实的基础。

    struts1项目代码

    在本项目中,“struts1项目代码”提供了从头到尾的实现,包括数据库连接和交互,这为我们深入理解Struts1的工作原理和实际应用提供了宝贵的资源。 首先,我们需要了解Struts1的核心组件: 1. **ActionServlet**:...

    struts-1.3.5源码包级文档

    通过研究这个源码包级文档,开发者不仅能深入理解Struts 1.3.5的工作原理,还能提升对MVC设计模式的理解,为后续使用更新的Web框架如Struts 2或Spring MVC打下基础。同时,对于维护旧系统的开发者来说,这将是一份...

    struts傻瓜式学习

    - **深入源码**:如果时间允许,可以深入研究Struts的源码,了解其实现原理。 通过上述知识点的介绍,相信初学者能够对Struts有一个较为全面的认识,并能够顺利入门。后续的学习过程中,还需要不断深入学习Struts的...

    struts 学习,吐血共享

    Struts 是一个开源的JavaEE框架,主要用于构建和维护MVC(Model-View-Controller)架构的...通过深入研究这个压缩包中的“chap27”,你将能够进一步提升你的Struts技能,为构建更加健壮、高效的Web应用打下坚实基础。

    Struts-API.rar_API_struts api

    Struts是一个开源的Java EE框架,主要用于构建基于MVC(Model-View-Controller)模式的Web应用程序。在Java Web开发中,Struts API是...通过深入研究这个文档,开发者可以更好地理解和运用Struts框架,提升开发效率。

    struts1源码下载

    深入研究Struts1的源码,开发者可以学习到如何优雅地处理HTTP请求、如何组织业务逻辑、如何实现视图和模型的解耦,以及如何使用XML配置文件进行应用配置。这对于理解其他基于MVC的框架,如Spring MVC,也有很大帮助...

    struts1.2案例源代码

    同时,研究struts-config.xml能帮助理解请求的路由规则。最后,通过查看JSP页面,可以学习如何将数据展示给用户。 总的来说,这个案例提供了实践Struts1.2框架的机会,有助于加深对MVC模式的理解,并提升Java Web...

    struts1X完整实例

    1. **了解配置文件**:研究struts-config.xml,理解各个元素的用途,比如Action的配置、FormBean的声明、以及forwards的定义。 2. **分析Action和ActionForm**:查看Action类如何处理请求,ActionForm如何封装用户...

    struts-1.2.9-all-bin

    Struts 1.2.9 是一个非常经典的Java Web开发框架,由Apache软件基金会开发并维护。...通过下载并研究"struts-1.2.9-all-bin"压缩包,开发者可以深入了解Struts的工作原理,并将其应用到实际项目中。

    Struts in Action

    11. ** strutstags-html** 和 ** strutstags-bean**:深入研究这两个核心标签库,理解它们在构建用户界面中的作用。 12. **Struts与Spring集成**:介绍如何将Struts与Spring框架集成,实现依赖注入和事务管理,提升...

    Struts2项目DOE

    4. **RESTful API实现**:研究如何使用Struts2构建符合REST原则的API接口。 总的来说,Struts2项目DOE可能涵盖了一系列关于框架配置、性能优化、安全性提升以及应用设计等方面的实验性工作,旨在提高项目的效率、可...

    struts test

    "struts的源码"可能涉及对Struts框架内部工作原理的深入研究,这有助于开发者理解其底层机制,如请求处理流程、拦截器的运作方式、以及如何自定义ActionSupport类以满足特定需求。通过阅读源码,开发者可以学习到...

    Struts原理、开发及项目实施

    /* 取得用户请求,做相应数据库操作,略 */ } } FormBean的产生是为了提供数据给ActionBean,在ActionBean中可以取得FormBean中封装的数据,经相应的逻辑处理后,调用业务...

    运用STRUTS框架结构的电子商务系统JSP源码

    在"运用STRUTS框架结构的电子商务系统JSP源码"中,我们可以深入学习和理解如何将STRUTS框架应用于实际的电子商务场景。 1. **STRUTS框架基础**:STRUTS的核心是ActionServlet,它负责接收HTTP请求,并通过配置文件...

    struts2文件上传文件的小实例

    Struts2是一个非常流行的Java Web框架,用于构建企业级的MVC(模型-视图-控制器)应用程序。在这个“struts2文件上传文件的小实例”中,我们将探讨...因此,深入研究Struts2文件上传的实现细节和最佳实践是至关重要的。

Global site tag (gtag.js) - Google Analytics