快速业务通道

JBuilder 2005 Struts深度体验之改造 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24

JBuilder 2005 Struts深度体验之改造

时间:2010-04-15 天极

用ActionForm截获登录表单数据

原登录模块用bookstore.User描述login.jsp登录页面表单的数据,在switch.jsp程序中通过<jsp:useBean>标签获取login.jsp表单的数据。其实User类相当于Struts框架中的模型,我们将通过一个ActionForm更好地实现这个功能。

ActionForm和Bean一样以属性名匹配的映射机制从HTTP请求中填充对象数据,但ActionForm比一般的Bean提供了更多的功能,Struts允许ActionForm通过validate()方法进行自校验,当数据不合法时自动转向到输出界面,此外还可以通过reset()方法,在数据填充前复位属性值。

下面我们就来创建UserActionForm,替换User的功能,建立起Struts框架中的"数据模型"。

1.指定ActionForm的Web模块及类信息

File->New...->Web->在Web页中双击ActionForm图标,弹出如图6所示的对话框:

JBuilder 2005 Struts深度体验之改造 - 编程入门网

图6 创建UserActionForm

·Struts config:我们前面有提到Struts1.1支持多个配置文件,所以你在这儿可以选择使用哪个Struts配置文件。因为我们现在还没有定义多个Struts配置文件,所以只得使用struts-config.xml。在开发新增图书的功能时,我们将定义另一个配置文件。

·ActionForm:ActionForm的类名,这里我们填入UserActionForm。

按Next到下一步。

2.定义ActionForm属性

JBuilder 2005 Struts深度体验之改造 - 编程入门网

图7 定义ActionForm属性

通过Add...按钮为UserActionForm增加4个属性,如图7所示。特别的,如果这个ActionForm所对应的入口页面已经创建,你也可以直接通过Add from JSP...按钮,选择一个JSP页面,JBuilder会分析这个页面的表单,并将表单的数据组件名抽取为ActionForm的属性。

按Next到下一步。

3.一些附加功能的定义

JBuilder 2005 Struts深度体验之改造 - 编程入门网

图8 附加功能定义

JBuilder 2005 Struts深度体验之改造(2)

时间:2010-04-15 天极

在FormBeanName中为UserActionForm指定一个名字,一般接受JBuilder所提供的默认名即可。这个名字将在struts-config.xml文件用来命名UserActionForm。

ActionForm比一般JavaBean强大的地方在于它可以进行数据检验,还可以进行数据复位。如果这个ActionForm最终要放到session中的,那么最好实现reset()方法,以复位ActionForm的数据,否则属性可能不会反映最新的值。这里, UserActionForm无需进行数据有效性校验,但由于UserActionForm最终需要放到session中,所以我们需要实现reset()方法。故此我们勾选Create/replace reset() method body选项。

直接按Finish创建UserActionForm,再将User类的代码拷贝过来,整改后的最终代码如下所示:

代码清单 6 以ActionForm实现的User类

1. package bookstore; 2. 3. import java.sql.*; 4. import java.text.*; 5. import java.util.Date; 6. import javax.servlet.http.*; 7. import org.apache.struts.action.*; 8. 9. public class UserActionForm 10. extends ActionForm 11. { 12.  private String userId; 13.  private String password; 14.  private String userName; 15.  private String loginDatetime; 16.  public String getPassword() { 17.   return password; 18.  } 19. 20.  … 21.  //复位所有属性值 22.  public void reset(ActionMapping actionMapping,HttpServletRequest servletRequest) { 23.   this.userId = null; 24.   this.userName = null; 25.   this.password = null; 26.   this.loginDatetime = null; 27. }

此外,JBuilder自动在struts-conf.xml文件中通过<form-bean>描述ActionForm。UserActionForm必须和一个Action相关联,因为HTTP请求通过Struts总控制器转发给Action,Struts控制器一旦发现Action

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