龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > JAVA开发 >

WebWork中使用动态Form字段

时间:2009-12-23 15:42来源:未知 作者:admin 点击:
分享到:
webwork中使用动态Form字段 ========================= 一般情况下,webwork使用字段驱动或者模型驱动方式获取表单中的数据.(普通表单) 但是有的情况下,需要编辑的字段名称内容都是动态变化的

   

  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()
  
  

精彩图集

赞助商链接