快速业务通道

Struts框架之构建Model组件 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21
er servlet在调用适当的 Action 方法前将自动为我们提供如下服务:

使用适当的关键字检查在用户适当的作用域(request或session)中是否有适当类的bean的一个实例。

如果没有这样的实例可用,则自动建立一个新的bean实例并将期加入到适当的作用域中(request或session)。

对于每个请求参数通过其名称来对应到bean的一个属性(property)上,并调用相应的setter方法来设置属性值。 这个方法类似于标准JSP中以以通配符"*"来使用 <jsp:setProperty > 标记。

更新后的 ActionForm bean被传递给 Action 类[ org.apache.struts.Action ] 的 execute 方法, 以使这些值能被我们的系统状态和业务逻辑bean来使用。

Struts框架之构建Model组件(2)

时间:2011-01-16

我们应该注意一个"表单(form)"在这里并不是必须对应于用户界面中一个单独的JSP页面。 在很多应用程序中一个"表单"(从用户的观点)延伸至多个页面也是很平常的。 想想看,例如,在新程序的安装时所使用的导航程序的用户界面。 Struts鼓励我们定义一个包含所有字段属性的单独的 ActionForm bean, 而不用管这些字段实际显示于哪个页面上。同样的,同一表单的不同页面应提交到相同的Action类。 如果我们遵照这个建议,在大多数情况下,页面设计者可以重新组织不同页面中的字段而不需要改变处理逻辑。

一个小的应用也许只需要一个ActionForm来为所有的输入表单提供服务。 其它应用可以为每个大的子系统来分别使用一个ActionForm。 还有一些人可能更喜欢为每一个输入表单或工作流分别使用不同的ActionForm类。 真正如何使用ActionForm完全在于我们,框架自身并不在意的。

ActionForm 接口本身不需要特殊的实现方法。它是用来标识这些特定的beans在整个体系结构中的作用。典型情况下,一个 ActionForm bean只包括属性的get方法和set方法,没有商业逻辑。

通常在一个 ActionForm bean中只有很少的输入验证逻辑。这样的beans存在的主要理由是保存用户为相关的表单所输入的大部分近期值,这样同样的页面可以被重建,伴随有一组出错信息,这样用户仅仅需要纠正错误的字段。用户输入的验证应该在 Action 类中执行(如果是很简单的话),或者在适当的商业逻辑beans中执行。

为每个表单中出现的字段定义一个属性(用相关的getXxx()和setXxx()方法)。字段名和属性名必须按照JavaBeans的约定相匹配。例如,一个名为 username 的输入字段将引起 setUsername() 方法被调用。

下面是ActionForm类的具体描述:

ActionForm类

框架假设用户在应用程序中为每个表单都创建了一个ActionForm bean,对于每个在struts-config.xml文件中定义的bean,框架在调用Action类的perform()方法之前会进行以下操作:

1、在相关联的关键字下,它检查用于适当类的bean实例的用户会话,如果在会话中没有可用的bean,它就会自动创建一个新的bean并添加到用户的会话中。

2、对于请求中每个与bean属性名称对应的参数,Action调用相应的设置方法。

3、当Action perform()被调用时,最新的ActionForm bean传送给它,参数值就可以立即使用了。

ActionForm类扩展org.apache.struts.action.ActionForm类,程序开发人员创建的bean能够包含额外的属性,而且ActionServlet可能使用反射(允许从已加载的对象中回收信息)访问它。

ActionForm类提供了另一种处理错误的手段,提供两个方法:

Public ActionErrors validate(ActionMappin mapping,ServletRequest request)

Public ActionErrors validate(ActionMappin mapping,HttpServletRequest request)

我们应该在自己的bean里覆盖validate()方法,并在配置文件里设置<action>元素的validate为true。在ActionServl

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号