快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21
et调用Action类前,它会调用validate(),如果返回的ActionErrors不是null,则ActinForm会根据错误关键字将ActionErrors存储在请求属性列表中。

如果返回的不是null,而且长度大于0,则根据错误关键字将实例存储在请求的属性列表中,然后ActionServlet将响应转发到配置文件<action>元素的input属性所指向的目标。

如果需要执行特定的数据有效性检查,最好在Action类中进行这个操作,而不是在ActionForm类中进行。

方法reset()可将bean的属性恢复到默认值:

public void reset(ActionMapping mapping,HttpServletRequest request)

public void reset(ActionMapping mapping,ServletRequest request)

典型的ActionFrom bean只有属性的设置与读取方法(getXXX),而没有实现事务逻辑的方法。只有简单的输入检查逻辑,使用的目的是为了存储用户在相关表单中输入的最新数据,以便可以将同一网页进行再生,同时提供一组错误信息,这样就可以让用户修改不正确的输入数据。而真正对数据有效性进行检查的是Action类或适当的事务逻辑bean。

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

时间:2011-01-16

3、系统状态Beans

系统的实际状态通常表示为一组一个或多个JavaBean类,其属性定义了当前的状态。 例如,在一个购物车系统中,将包括一个表示购物车的bean,这个bean为每个购物者所维护, 它包括了购物者所选择购买的物品条目。 另外,系统也包括保存用户信息(包括他们的信用卡和送货地址)、可获得的条目和当前库存水平这些不同的bean。

对于小规模系统,或是对于不需要长时间保存的状态信息,一组系统状态bean可以包含 所有系统曾经经历的特定细节的信息。 或者经常是,系统状态bean会表示永久保存在一些外部数据库中的信息(例如 CustomerBean 对象对应于CUSTOMERS表中特定的一行数据), 在需要时从服务器的内存中创建或清除。Entity Enterprise JavaBeans也是用于这种用途的。

4、商业逻辑Beans

我们应该把用程序中的功能逻辑在设计时封装成为JavaBean的方法调用。 这些方法可以是用于系统系统装态bean相同的类中的一部分,或者可以是在专门执行商业逻辑的独立的类中。 在后一种情况下,我们通常需要将系统状态bean传递给这些方法做为参数以进行处理。

为了达到代码的最大可重用性,商业逻辑bean应该被设计和实现为它们并 不 知道自己被执行于web应用环境中。 如果发现在我们的bean中正在import javax.servlet.* 中的类,我们就把这个商业逻辑限定在了web应用环境中。 应考虑重新组织我们的 Action 类通过对商业逻辑beans属性的set方法的调用以翻译所有从HTTP请求中发出的请示信息,之后再发出一个对 execute 方法的调用。 这样才可以让商业逻辑类在最初被构造的web应用程序以外的环境中被重用。

依赖于我们的应用程序的复杂度和范围,商业逻辑beans可以是与作为参数传递的系统状态bean交互作用的普通JavaBean, 或都是使用JDBC访问数据库的普通的JavaBean。而对于较大的应用程序,这些bean经常是有状态或无状态的Enterprise JavaBeans (EJBs)。

下面是Action 类的具体描述:

Action类

Action类真正实现应用程序的事务逻辑,它们负责处理请求。在收到请求后,ActionServlet会:

为这个请求选择适当的Action

如果需要,创建Action的一个实例

调用Action的perform()方法

如果ActionServlet不能找到有效的映射,它会调用默认的Action类(在配置文件中定义)。如果找到了ActionServlet将适当的ActionMapping类转发给Action,这个Action使用ActionMapping找到本地转发,然后获得并设置ActionMapping属性。根据servlet的环境和被覆盖的perform()方法的签名,ActionServlet也会传送ServletRequest对象或HttpServletRequest对象。

所有

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号