PowerEngine AJAX API User Guide
一、约定
messageId: 用于显示错误信息,指向<span id="messageId"> </span>
clickObject:触发该调用的按钮
form0: 自动收集form数据后提交
url0: 若提供,则替换form0默认的Action
wait: 一般都填false
二、AJAX API说明
1. function PELoadContent(url0, myarray, id, messageId, callback, timeout )
功能描述:通过数组提交数据,并将返回的流数据更新到指定区域.相当于以前的PELoadList.
适用情形:用于装载一个动态列表或消息。注意与
post2SRVNoFoward/postData2SRVNoFoward的差别。
post2SRVNoFoward/postData2SRVNoFoward一般用于服务端通过JSP返回的情形。
PELoadContent一般配合PE AJAX Action使用,这些Action通过Stream返回。
参数说明:
url0: 目标交易码
myarray: 交易数据
id: 正常返回时内容显示的目标
messageId: 出错时返回信息显示的目标。可省略或设为null,默认值与id相同。
callback: 出错时的回调函数。可省略或设为null。
timeout: 超时时间,建议省略或设为null。默认为30000毫秒。
范例:
var oparams = new Array(
new Pair("ValidatorId", document.form1.ValidatorId.value),
new Pair("Expression", "<c:out value="${Expression}"/>")
);
PELoadContent("ExprInput.do",oparams, "AAA");
2. function PEFreshContent( url0,item, id, messageId,callback, timeout) 不常用
功能描述:从item取得当前选择项的Name=Value对后提交.并将返回的流数据更新到指定区域.相当于以前的PEFreshList.
适用情形:列表变化时,根据列表的当前选择值,动态装载另外的列表或动态消息。
参数说明:除item外,其他与PELoadContent相同。
3. function post2SRV(url0, form0, clickObject , messageId, callback, timeout)
功能描述:将指定的Form提交,出现有效性检查错误时,将错误信息更新到当前页面的messageId指定的目标,其他情况返回结果页面。
适用情形:提交表单到服务器,与普通提交类似。在出错时,当前页面不变。
参数说明:
url0: 目标交易码
form0: 需提交的form
clickObject: 该按钮将出现在提交数据中。并在提交过程中disabled。
messageId: 出错时返回信息显示的目标。
callback: 出错时的回调函数。可省略或设为null。
timeout: 超时时间,建议省略或设为null。默认为30000毫秒。
4. function postData2SRV(url0, postData , messageId, callback, timeout)
功能描述:将指定的postData提交,出现有效性检查错误时,将错误信息更新到当前页面的messageId指定的目标,其他情况返回结果页面。
适用情形:提交数据到服务器,与普通提交类似。在出错时,当前页面不变。
参数说明:
url0: 目标交易码
postData: 需提交的数据
messageId: 出错时返回信息显示的目标。
callback: 出错时的回调函数。可省略或设为null。
timeout: 超时时间,建议省略或设为null。默认为30000毫秒。
5. function post2SRVWithCallback(url0,form0, clickObject, callback,timeout)
功能描述:将指定的Form提交,结果回调callback.
适用情形:提交表单到服务器,当前页面不变。用于需对返回结果进一步处理的情形。
参数说明:
url0: 目标交易码
form0: 需提交的form
clickObject: 该按钮将出现在提交数据中。并在提交过程中disabled。
callback: 回调函数。不可省略!
timeout: 超时时间,建议省略或设为null。默认为30000毫秒。
function mycallback(success, message)
{
//success: true or false
alert(success);
//success is true, then message为正常返回内容,可以为页面或流。
//success is true, then message为出错信息
alert(message);
}
6. function postData2SRVWithCallback(url0, postData, callback, timeout)
功能描述:将指定的postData提交,结果回调callback.
适用情形:提交数据到服务器,当前页面不变。用于需对返回结果进一步处理的情形。
参数说明:
url0: 目标交易码
postData: 需提交的数据
callback: 回调函数。不可省略!
timeout: 超时时间,建议省略或设为null。默认为30000毫秒。
7. function postItem2SRVWithCallback(url0, item, callback, timeout)
功能描述:将item对应的域的FieldName=fieldValue提交,结果回调callback.
适用情形:提交单一表单数据项的当前数据到服务器,当前页面不变。用于需对返回结果进一步处理的情形。
参数说明:
url0: 目标交易码
item: 需提交的数据域
callback: 回调函数。不可省略!
timeout: 超时时间,建议省略或设为null。默认为30000毫秒。
8. function postArray2SRVWithCallback(url0, myarray, callback, timeout)
功能描述:将myarray提交,结果回调callback.
适用情形:提交数组到服务器,当前页面不变。用于需对返回结果进一步处理的情形。
参数说明:
url0: 目标交易码
myarray: 需提交的数据域数组
callback: 回调函数。不可省略!
timeout: 超时时间,建议省略或设为null。默认为30000毫秒。
9. function post2SRVNoFoward(url0, form0, clickObject, id, messageId,callback, timeout)
功能描述:通过form提交,并将返回的流数据更新到指定区域.
适用情形:提交表单到服务器,将返回结果局部刷性到当前页面的指定区域。
参数说明:
url0: 目标交易码
form0: form
clickObject: 该按钮将出现在提交数据中。并在提交过程中disabled。
id: 正常返回时内容显示的目标
messageId: 出错时返回信息显示的目标。可省略或设为null,默认值与id相同。
callback: 出错时的回调函数。可省略或设为null。
timeout: 超时时间,建议省略或设为null。默认为30000毫秒。
10. function postData2SRVNoFoward(url0, postData , id, messageId,callback, timeout)
功能描述:通过postData提交,并将返回的流数据更新到指定区域.
适用情形:提交数据到服务器,将返回结果局部刷性到当前页面的指定区域。建议配合适用PEGetPostData等获取postData。
参数说明:
url0: 目标交易码
postData: 需提交数据
clickObject: 该按钮将出现在提交数据中。并在提交过程中disabled。
id: 正常返回时内容显示的目标
messageId: 出错时返回信息显示的目标。可省略或设为null,默认值与id相同。
callback: 出错时的回调函数。可省略或设为null。
timeout: 超时时间,建议省略或设为null。默认为30000毫秒。
11. function loadDCToken(tokenId, timeout)
功能描述:装载重复提交控制Token
参数说明:
tokenId:指定的Hidden域名称。可省略或设为null,默认值为:_tokenName
timeout: 超时时间,建议省略或设为null。默认为30000毫秒。
范例:
function startup()
{
loadDCToken(); //首次装载
}
function doIt(clickObj)
{
post2SRV('xxxx.do',document.form1,clickObj,'EEE',
function(flag, answer)
{
loadDCToken(); //出错时,重装载
}
);
}
<pe:hidden fieldList="_tokenName" />
三、其他 API说明
1. function PEGetFormData(form0, clickObject)
功能描述:根据form及clickObject获取postData。
2. function PEGetPostData(myarray)
功能描述:将数组转成postData。
范例:
var myarray = new Array(
new Pair("BankId", document.form1.BankId.value),
new Pair("CifNo", document.form1.CifNo.value),
new Pair("UserId", document.form1.UserId.value),
new Pair("Password",document.form1.Password.value )
);
var result = PEGetPostData(myarray);
result: BankId=xxx&CifNo=yyy&UserId=zzz&Password=ppp
3. function PEGetItemData(item)
功能描述:将一个域转成postData。
范例:
var result = PEGetItemData(form1.UserId);
result: UserId=encoded_value
4. function PEGetElement(id)
功能描述:通过id获取HTML页面的Element。
四、范例
function doIt(clickObj)
{
//post2SRV('login.do',clickObj.form,clickObj,'EEE', mycallback);
var myarray = new Array(
new Pair("BankId", document.form1.BankId.value),
new Pair("CifNo", document.form1.CifNo.value),
new Pair("UserId", document.form1.UserId.value),
new Pair("Password",document.form1.Password.value )
);
PELoadContent('login.do', myarray, 'EEE', 'EEE', mycallback);
PEFreshContent( 'login.do',document.form1._vTokenName, 'EEE', 'EEE',mycallback);
post2SRVWithCallback('login.do',clickObj.form,clickObj, mycallback);
postData2SRV('login.do', PEGetFormData(clickObj.form,clickObj) , 'EEE', mycallback);
postItem2SRVWithCallback('login.do', document.form1._vTokenName, mycallback);
post2SRVNoFoward('login.do',clickObj.form,clickObj, 'EEE', 'EEE',mycallback);
}
function mycallback(flag, answer)
{
alert(answer);
reloadTokenImg();
}
function reloadTokenImg(){
document.forms[0]._tokenImg.src="GenTokenImg.do"+"?random="+Math.random();
}