|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
一般情况下,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没有几天,对我关心的问题提出了上面的方式,肯定是比较简朴的想法. 返回类别: 教程 上一教程: 不能使用ASP标记的时候的一个解决办法 下一教程: 将你的网站设置为客户的信任站点--WSH方案 您可以阅读与"WEBWORK中使用动态FORM字段"相关的教程: · ASP中使用FORM和QUERYSTRING集合 · ASP.NET中使用多个RUNAT=SERVER FORM · 如何在ASP中使用MYSQL · 在ASP中使用SQL语句之12:连接 · 在ASP中使用SQL语句 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |