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" <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()
新聞熱點
疑難解答