快速业务通道

Struts1.x系列教程(14):动态Form - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21
单属性public Object get(String name, int index) ; // 读取索引属性public Object get(String name, String key); // 读取映射属性

下面的代码演示了如何通过getter方法获得动态Form的属性值:

DynaActionForm dForm = (DynaActionForm)form;String name = (String)dForm.get("name");String[] hobbies = (String[])dForm.get(“hobbies”);String value1 = (String)dForm.get(“myMap”, “key1”);

除了上述的get方法外,DynaActionForm还提供了getString和getString方法,分别用来读取String和String[]类型的属性值,这两个方法的定义如下:

public String getString(String name) ;public String[] getStrings(String name) ;

下面的代码演示了如何通过getString和getStrings方法获得动态Form的属性值:

String name = dForm.getString(“name”);  // 相当于String name = (String)dForm.get("name");String[] hobbies = dForm.getStrings(“hobbies”);  // 相当于String[] hobbies = (String[])dForm.get(“hobbies”);

在使用getString和getStrings方法时应注意,这两个方法只能读取String或String[]类型的属性,读取其他类型的属性将会抛出异常。

五、一个动态Form的例子

我们在这一部分来实现一个完整的动态Form的例子,在这个例子中的动态Form有四个属性,三个是简单数据类型,一个是数组类型。完成这个例子需要如下四步:

【第1步】配置动态Form

打开struts-config.xml,在<form-beans>元素中加入如下的内容:

<form-bean name="dynamicForm" type="org.apache.struts.action.DynaActionForm">    <form-property name="name" type="java.lang.String" />    <form-property name="age" type="java.lang.Short" />    <form-property name="salary" type="java.lang.Float" />    <form-property name="hobby" type="java.lang.String[]" /></form-bean>

Struts1.x系列教程(14):动态Form(3)

时间:2011-01-10 blogjava 银河使者

【第2步】编写Struts Action类

这个Struts Action类负责从动态Form中获得属性值,并输出到客户端浏览器。在<samples工程目录>"src"action目录中建立一个DynamicAction.java文件,代码如下:

package chapter6.action;  import javax.servlet.http.*;  import org.apache.struts.action.*;  import java.io.*;  public class DynamicAction extends Action  {      public ActionForward execute(ActionMapping mapping, ActionForm form,              HttpServletRequest request, HttpServletResponse response)      {          try          {              DynaActionForm dForm = (DynaActionForm) form;              String name = (String) dForm.get("name");              Short age = (Short) dForm.get("age");              Float salary = (Float) dForm.get("salary");              // 获得数组类型字段值的数组长度              int hobbyCount = ((String[]) dForm.get("hobby")).length;              PrintWriter out = response.getWriter();              out.println("name: " + name + "<p/>");              out.println("age: " + age + "<p/>");              out.println(

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