WebWork中使用动态Form字段

类别:Java 点击:0 评论:0 推荐:
(转载请注明出处,作者.)

webwork中使用动态Form字段
=========================   一般情况下,webwork使用字段驱动或者模型驱动方式获取表单中的数据.(普通表单) 但是有的情况下,需要编辑的字段名称内容都是动态变化的,此时就没法使用确定的类来做映射.   此时我想到有以下几种方法解决:   1.使用webwork的内部对象,取出所有参数
  
      ActionContext context = ActionContext.getContext();
      Map params = context.getParameters();
      
      操作params就可以获取所有参数
2.使用Map映射    Map有get,put函数,例如get("name"),put("name","scud")
 经过试验(文档中没有对此的说明,webwork的文档目前还很少,也可能是我没阅读到)
 
 在表单中映射采用这样的方式:
   <input name="fields.name">
 
 读取值则采用fields['name']的方式,这个文档中提到了
 
 具体的文件如下:
 
 A:输入页面     <%@ taglib uri="webwork" prefix="ww" %>
  <html>
  <head>
  <title>WebWork Test 2</title>
  </head>
  <body>
  <p>What's your name?</p>
  <form action="hello.action" method="post">
  <p>
      <input type="text" name="field.person" /><br>
      <input type="submit" />
  </p>
  </form>
  </body>
  </html>
 
 B:success转向的页面
 
  <%@ taglib uri="webwork" prefix="ww" %>
  <html>
  <head>
  <title>WebWork Test 2</title>
  </head>
  <body>  
  Hello, <ww:property value="field['person']" /><br>  
  </body>
  </html>
 
 C:用到的Action类       package helloWorld;
  
  import com.opensymphony.xwork.*;
  import java.util.*;
  
  public class HelloAction extends ActionSupport
  {
      private Map field = new HashMap();
  
      public String execute() throws Exception
      {
          return SUCCESS;
      }
  
      public void setField(Map field)
      {
          this.field = field;
      }
  
      public Map getField()
      {
          return field;
      }  
  }
    
  D:xwork.xml里面的部分配置
   
     <action name="hello" class="helloWorld.HelloAction">
         <result name="error" type="dispatcher">ex02-index.jsp</result>
         <result name="success" type="dispatcher">ex02-success.jsp</result>
     </action>   
       3.使用用户自定义类来实现      这种方式不多讨论,用户的类可能需要实现getXXX(String sKey)类似的函数.       总结:      当然应该还有其他方法实现,而且可能更好,不过我刚看webwork没有几天,对我关心的问题提出了上面的方法,肯定是比较简单的想法.      如果那位有其他方法,请不吝指教.     webwork的资料太少了....      (转载请注明出处,作者.)

本文地址:http://com.8s8s.com/it/it15116.htm