Skip to content
This repository has been archived by the owner on Jan 27, 2020. It is now read-only.

Latest commit

 

History

History
127 lines (119 loc) · 5.75 KB

myEvent.js.md

File metadata and controls

127 lines (119 loc) · 5.75 KB

返回     日本語  中文  English

web/WEB-INF/efw/event/myEvent.js
--------------------------------------------------------------------------------
var form1_event1={};
form1_event1.outOfLogin   = false;
form1_event1.include      = [ { eventId : "form1_event2" } ];
form1_event1.paramsFormat = { 
                                "#txt_teststring" : "display-name:测试文字;max-length:10;",
                                "#txt_testnumber" : "format:#,##0.00;required:true;display-name:测试数字;min:-10.00;max:1,000.00",
                                "#txt_testdate"   : function(){
                                                        var date1=new Date();
                                                        var date2=new Date();
                                                        date2.setDate(date1.getDate()+Number(6));
                                                        return "format:yyyy年MM月dd日;required:true;display-name:测试日期;"
                                                               +"min:"+efw.server.format.formatDate(date1,"yyyy年MM月dd日")+";"
                                                               +"max:"+efw.server.format.formatDate(date2,"yyyy年MM月dd日")+";" ;
                                                    },
                                ... 
                            };
form1_event1.fire         = function ( requestParams ) {
                                var ret=[];
                                    ...
                                var retsub=form1_event2.fire({ ... });
                                if(retsub.error) return {error:{...}};
                                ret=ret.concat(retsub);
                                return ret;
                            };
event文件。

    form1_event1.outOfLogin = true/false;
免除登陆校验标识,如果未设置或是false的话,进行登陆校验。如果设置true的话,不进行登陆校验。
关于登陆校验的确认对象,请参照efw.properties 的 efw.login.key 。

form1_event1.paramsFormat = { 
                                "#txt_teststring" : "display-name:测试文字;max-length:10;",
                                "#txt_testnumber" : "format:#,##0.00;required:true;display-name:测试数字;min:-10.00;max:1,000.00",
                                "#txt_testdate"   : function(){
                                                        var date1=new Date();
                                                        var date2=new Date();
                                                        date2.setDate(date1.getDate()+Number(6));
                                                        return "format:yyyy年MM月dd日;required:true;display-name:测试日期;"
                                                               +"min:"+efw.server.format.formatDate(date1,"yyyy年MM月dd日")+";"
                                                               +"max:"+efw.server.format.formatDate(date2,"yyyy年MM月dd日")+";" ;
                                                    },
                                ... 
                            };
为了自动进行单纯输入校验,在paramsFormat里定义校验样式。
详细内容参照event.paramsFormat.checkStyle的API。

    return {error:{...}};
如果业务校验发现错误,事件处理中返回error对象。详细内容参照event.fire.error的API。
如果想要管理业务校验错误信息,可以定制化efw.client.messages.js或efw.server.messages.js文件。

    form1_event1.include = [ { eventId : "form1_event2" } ];
    ...
    var retsub = form1_event2.fire( { ... } );
    ret = ret.concat( retsub );
如果想在主事件里执行子事件,需要定义include属性。
如果想要把子事件的paramsFormat加入主事件里,可以利用include的mergeParamsFormat。详细内容参照event.include的API。
主事件和子事件的执行结果,可以用数组结合的方式连接。详细内容参照event.fire.eventResult的API。

    form1_event1.paramsFormat = { ... };
    ...
    form1_event1.fire         = function ( requestParams ) {
                                    var ret=[];
                                        ...
                                    return ret;
                                };
事件的数据传递记述是在服务端js文件,而不是客户端js文件。
詳細内容参照efw.client.fire的API。

每次执行event.fire时,进行事务处理。
如果事件的fire成功的话,事务处理执行commit。如果失败的话,事务处理执行rollback。
詳細内容参照efw.server.prepare和efw.server.finish的API。
事务处理的定制化可以在efw.server.customize.js里进行。