Dorado 9 : FormSubmitAction(DCUG)

简介

模拟表单提交动作的控件。

如果你熟悉HTML中的Form的submit,那么就不难理解FormSubmitAction

<FORM action="http://server.com/cgi/handle" method="post">
   昵称 <INPUT type="text" name="nickname"><BR>
   邮箱 <INPUT type="text" name="email"><BR>
   QQ <INPUT type="text" name="qq"><BR>
   手机 <INPUT type="text" name="mobile"><BR>
   <INPUT type="submit" value="Send"> <INPUT type="reset">
</FORM>

 FormSubmitAction就是将上面的提交抽象动作抽象为一个不可见的控件。

提供action和method属性,提交的数据由parameter管理: 

formSubmitAction.set({
	action:"http://server.com/cgi/handle",
	method:"post",
	parameter:{
		nickname:"野生程序猿",
		firstName:"丁",
		lastName:"二",
		titleOfCourtesy:"xxxx"
	}
});
formSubmitAction.execute();

通过这种机制,即使在页面上不定义<Form>html对象,你也可以比较简单的实现一个Form的submit的动作。

由于通常情况下action和method都是预先配置好的:

当我们需要调用它的时候直接设置parameter就可以: 

formSubmitAction.set("parameter", {
		nickname:"野生程序猿",
		firstName:"丁",
		lastName:"二",
		titleOfCourtesy:"xxxx"
	});
formSubmitAction.execute();

或者利用Entity对象赋值的方式设置parameter并调用: 

formSubmitAction.set("parameter", entity).execute();

需要特别说明的是parmeter只支持:

  • 普通类型:如字符串,数字,日期
  • 单个JSON对象
  • 个Entity对象

不支持JSON数组和EntityList参数

 详细属性说明

 FormSubmitAction继承自Action,因此其基本属性请参考:Action 

下面我们将只针对其特有的一些属性加以说明:

action

对应Form标记中的action:

<FORM action="http://server.com/cgi/handle" method="post">

method

对应Form标记中的method

<FORM action="http://server.com/cgi/handle" method="post">

target

对应Form标记中的target

<FORM action="http://server.com/cgi/handle" method="post" target="_self">

其它说明

由于Form的Submit最终都会被处理为字符串格式的数据,因此以下两种格式的数据做特别说明:

  • Date类型的数据:最终会被转换为这个格式的数据:2012-11-16T09:11:16Z
  • Entity类型的数据:最终会调用Entity.toJSON()转换为JSON数据提交到服务器

Attachments:

FormSubmitAction.png (image/png)