JBuilder2005 Struts深度体验之改造

来源:互联网 发布:缓慢 米兰昆德拉 知乎 编辑:程序博客网 时间:2024/05/22 01:48

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


  
  ·ActionForm:ActionForm的类名,这里我们填入UserActionForm。
  
  按Next到下一步。
  
  2.定义ActionForm属性
   
  图 7 定义ActionForm属性
  
  通过Add...按钮为UserActionForm增加4个属性,如图 7所示。特别的,如果这个ActionForm所对应的入口页面已经创建,你也可以直接通过Add from JSP...按钮,选择一个JSP页面,JBuilder会分析这个页面的表单,并将表单的数据组件名抽取为ActionForm的属性。
  
  按Next到下一步。
  
  3.一些附加功能的定义
   
  图 8 附加功能定义
  
  在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类
阅读全文:http://www.javah.net/Struts/20070507/821.html
原创粉丝点击