ext direct spring Simple Method
来源:互联网 发布:cms份额排行榜 编辑:程序博客网 时间:2024/06/06 14:26
Server
在客户端可以用JavaScript访问的方法必须用@ExtDirectMethod注释。注释方法的bean必须是Spring管理的bean。
@Servicepublic class TestAction { @ExtDirectMethod public String doEcho(String message) { return message; } @ExtDirectMethod public int anotherAction() { return 1; }}
如果方法需要访问服务器对象,如请求和响应,添加参数的方法签名。
@ExtDirectMethod public String doEcho(String message, HttpServletRequest request) { //do something with the request return message; }
ExtDirectSpring支持的服务器对象参数:
HttpServletResponse
HttpServletRequest
HttpSession
Locale
Principal
Parameters annotated with @RequestHeader (since 1.1.0)
服务器对象参数可以添加任意顺序
@ExtDirectMethod public String doSomething(HttpServletResponse response, int fromClient1, HttpServletRequest request, int fromClient2, Locale locale, int fromClient3) { //do something here }
客户端方法看不到服务器对象参数,调用doSomething方法示例如:testAction.doSomething(1, 2, 3, callback)。
类库也支持 @DateTimeFormat和@NumberFormat注释。
@ExtDirectMethod public Map<String, Object> aMethod(@DateTimeFormat(iso = ISO.DATE_TIME) Date aDate, @NumberFormat(style = NumberFormat.Style.PERCENT) BigDecimal percent) { ... }
Client
Spring bean的name是客户端action的名字。如testAction.doEcho('ping', callback)将会调用服务器端Spring bean testAction的方法doEcho。调用服务器的方法通常是异步因此需要一个回调函数,回调函数将会被调用有返回的时候。回调函数是调用服务器方法的最一个参数。如果服务器方法一个参数没有,回调函数是唯一参数。testAction.anotherAction(callback)。最后一个参数也有可能是回调函数执行的作用域,testAction.doSomething(1, 2, 3, callback, this)。
参数的顺序和个数必须跟服务器方法签名一致(服务器对象除外)。
回调函数不是必须的可以省略。
Callback function
var callback = function(result, e) { // do something with the result };
回调函数会被调用当服务器端返回结果或抛出一个异常。一个Ext.Direct回调函数被调用,带有两个参数:
result 这个参数包含服务器方法返回的数据。
e 一个Ext.Direct.RemotingEvent (Ext JS 3) 或 Ext.direct.RemotingEvent (Ext JS 4.x and Sencha Touch 2)
event对象有一些有用的属性和方法:
status true 如果方法调用成功,false如果方法调用失败
result 包含同返回结果一样数据
type rpc或exception 如果异常发生
action bean的name例如‘testAction’
method 方法的名字 (*'doEcho'*)
tid 事务id
getTransaction() 获得调用服务器方法的事务。这个对象包含一些信息,如transaction.args包含方法调用时的参数。
Events
Direct Manager支持两类事件event和exception。event在调用服务器方法返回后触发。exception在发生异常时触发。可以很容易监听这些事件通过添加监听到Ext.direct.Manager。
//Ext JS 4.x and Sencha Touch 2 Ext.direct.Manager.on('event', function(e) { //do something here }); Ext.direct.Manager.on('exception', function(e) { //do something here });
Examples
- http://demo.rasc.ch/eds/extjs3/simple.html
- http://demo.rasc.ch/eds/extjs3/direct.html
- http://demo.rasc.ch/eds/extjs41/direct.html
- http://demo.rasc.ch/eds/extjs42/direct.html
- ext direct spring Simple Method
- ext direct spring Simple Named Parameter Method 命名参数方法
- ext direct spring Polling Method
- ext direct spring sse method
- ext direct spring Store Read Method
- ext direct spring Store Modify Method
- Ext Direct Spring Tree Load Method
- ext direct spring Form Method and @JsonView
- ext direct spring 介绍
- ext direct spring Api
- ext direct spring Configuration
- 配置 ext direct spring Spring XML
- ext direct spring Spring Java Config
- ext direct spring Maven set up(配置)
- Ext.Direct
- ext direct spring Model Generator and Generator APT
- extnet mvc direct method
- Ext.Direct技术初步
- Android开发 递归算法 将ViewGroup中所有子控件状态进行动态改变
- Git命令小记
- POJ 1466 最大独立集入门
- Nginx模块开发指南(Emiller) 四
- 设计模式学习--状态模式(State Pattern)
- ext direct spring Simple Method
- 读句子,背单词
- Ubuntu 13.04安装搜狗输入法、谷歌输入法等
- Android编程心得-Handler与子线程的交互初步
- Android Robotium测试单个的APK方法
- 记录几个异常
- 内联函数的使用及注意点
- 多想抱着你哭
- DOJO TEST - Access to restricted URI denied“ code: ”1012 - Cross domain Ajax request