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