`
jzcsl700
  • 浏览: 6079 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

ext java数据接口

阅读更多
Extjs和java传输协议
1.文件包 js,html,vm
Js文件:定义js类文件
Html文件:用来书写一些html代码片段和js代码片段
Js文件中的js和html文件中的js代码片段区别在于:如果作为其他模块的调用方法或者功能则定义在js文件中,否则定义在html中作为js代码片段中。
Vm文件:用来定义ext和java传输的数据信息(关于此文件的格式下面定义了一套规则),也就是说velocity模板功能在ext项目中只用来定义传输信息和格式,而非组织html内容。
2.数据传输方式
关于信息的传输涉及到java中的action类,vm和extjs。
总的来说后台的代码组织形式和普通的项目是一样的,只不过vm文件的使用有别于普通项目,它用来传输java和ext之间的数据信息。
例如:在java的action类中方法定义如下(登录的例子):
public ActionForward loginExtJS(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws BaseException {
………….//内容
If(失败)
return mapping.findForward("loginFail");
else
            return mapping.findForward("loginSuc");
        }
}
Strut_config.xml配置为:
<action path="/loginExtJS" type="com.css.main.action.LoginAction"
scope="request" parameter="loginExtJS" name="userForm" validate="false">
<forward name="loginFail" path="/vm/loginFail.vm" />
<forward name="loginSuc" path="/vm/loginSuc.vm" />
</action>
以上和普通项目相同。
Vm内容如下:
loginFail.vm文件:
{
"code":"0000",
"msg":"登录失败!",
"success":true
}
loginSuc.vm文件:
{                                          
"code":"0001",
"msg":"登录成功!",
"success":true ,
"data" : "$permitString"
}
Vm文件只是用来传输信息的内容和格式,作为信息流传输。
Extjs接收信息。例如接收loginSuc.vm的信息:
loginForm.form.doAction('submit', {
url : '/loginExtJS.do',//转到了loginSuc.vm,解析里面的信息
method : 'post',
success : function(form, action) {
if (action.result.code == '0001') {
permitString = action.result.data;
} else {Ext.example.msg('提示:',action.result.msg);
}
},
failure : function(f,a) {
//后台报错
if(a.failureType===Ext.form.Action.CONNECT_FAILURE){
Ext.Msg.alert('错误', '服务器出现错误!');
}//服务器没有启动
if(a.failureType === Ext.form.Action.SERVER_INVALID){
Ext.Msg.alert('错误', '服务器无效,稍等,请重试!'); }
}
});
}
3.数据传输协议
以下定义数据的传输格式(即传输的vm文件中数据格式)
3.1客户端请求方式
客户端请求方式和普通b/s一样
3.2服务端响应
1, code:定义四位的操作代码;
2, msg:定义对操作代码的解释;
3, data定义服务器端返回的信息数据;
4, extdata表示扩展数据信息;
5, success:true(extjs框架默认某些响应必须含有此信息)

服务端响应:
服务器端每次响应,对应的值视业务情况而定。结构如下:
{
code: "",
msg: "",
data: {} ,
extdata: {} ,
success: true
}

对三类请求的响应,格式如下:
1, 响应是否成功:
{
"code":定义的代码,
"msg":对代码的解释,
"success":true,
"data":[]/{},//返回的信息
“extdata”: []/{}//对data的补充
}
例如:响应用户登录成功信息
{
"code":"0001", //成功代码
"msg":"登录成功!",//成功的提示信息
"success":true
}
2, 返回的列表信息:
{
"data":[ //列表信息
列表内容对象
],
"extdata":215  //对data的辅助信息
}
例如:返回的id和名称列表
{
"data":[
{"id":"111111I9","name":"H001"},
{"id":"111111I8"," name":"H001"},
{"id":"111111I7"," name":"H001"},
{"id":"111111H5"," name":"H001"}
],
" extdata":215   //对data的补充,这里表示列表中数据条数
}

3, 响应查看信息:
{
"data":[{"field1":$!vt.toJSON($field1value),"field2":$!vt.toJSON ($field2value)}],
"success":true
}
例如:通过id查看一条数据,load到Form里进行显示
{
"data":[{" field1":"name"," field2":"00006"}],
//filed1和filed2为ext中Filed属性name
"success":true
}

说明:
code代码规定(根据项目而定):
1, 返回成功代码:1***
2, 返回失败代码:2***
3, 验证信息代码:3***
4, 权限信息代码:4***
5, 异常代码:5***
6, 其他

4.关于异常
有关异常的处理和捕获。
4.1程序异常
在dao中不再捕捉DaoException,bo抛出异常,用工具方法SysGlobals.returnExceptionMsg在action中统一处理异常。
4.2非程序异常
非程序异常指的是服务器失效等非程序因素的异常,应该由ext去处理
5.关于form验证
验证分客户端验证即ext验证,和服务端验证即validator验证。
validator验证和以往项目配置相同,文件struts_config.xml配置属性input返回json结构的vm验证错误信息即可,例如:
{                                          
"code":"3007",
"msg":$!vt.toJSON(#errorMarkup()),
"success":true
}
在ext里解析code,显示msg即可。

注意事项:  1,后台传输给前台的信息要用$!vt.toJSON对信息进行过滤
toJSON参数为字符型,在参数为空的情况下放回””
2,vm页面(即json数据信息)目录结构为:json/模块名称/类名/请求名.vm,目录名称都为小写,.vm文件名称可按请求名称
3, 更新css_util.jar包,在toolbox.xml里加上:
<tool>
<key>vt</key>
<scope>application</scope>
<class>com.css.util.VelocityTools</class>
</tool>
4,在json传输结构中,key可以没有引号,但是其值必须加引号
5,提示的汉字信息定义在在属性文件中,严禁在js中书写提示信息,code写在常量类中
分享到:
评论

相关推荐

    JAVA_API1.6文档(中文)

    java.awt.datatransfer 提供在应用程序之间和在应用程序内部传输数据的接口和类。 java.awt.dnd Drag 和 Drop 是一种直接操作动作,在许多图形用户界面系统中都会遇到它,它提供了一种机制,能够在两个与 GUI 中...

    java api最新7.0

    java.awt.datatransfer 提供在应用程序之间和在应用程序内部传输数据的接口和类。 java.awt.dnd Drag 和 Drop 是一种直接操作动作,在许多图形用户界面系统中都会遇到它,它提供了一种机制,能够在两个与 GUI 中显示...

    Java 1.6 API 中文 New

    java.awt.datatransfer 提供在应用程序之间和在应用程序内部传输数据的接口和类。 java.awt.dnd Drag 和 Drop 是一种直接操作动作,在许多图形用户界面系统中都会遇到它,它提供了一种机制,能够在两个与 GUI 中显示...

    JavaAPI1.6中文chm文档 part1

    java.awt.datatransfer 提供在应用程序之间和在应用程序内部传输数据的接口和类。 java.awt.dnd Drag 和 Drop 是一种直接操作动作,在许多图形用户界面系统中都会遇到它,它提供了一种机制,能够在两个与 GUI 中...

    Ext Js权威指南(.zip.001

    5.3.2 为组件添加事件接口:ext.util.observable / 188 5.3.3 为组件绑定事件 / 189 5.3.4 内部事件的触发过程 / 192 5.3.5 移除事件 / 194 5.4 特定功能的事件对象 / 196 5.4.1 延时任务:ext.util....

    JavaAPI中文chm文档 part2

    java.awt.datatransfer 提供在应用程序之间和在应用程序内部传输数据的接口和类。 java.awt.dnd Drag 和 Drop 是一种直接操作动作,在许多图形用户界面系统中都会遇到它,它提供了一种机制,能够在两个与 GUI 中...

    java_jsp项目源码_龙门物流管理系统(Ext+SSH).rar

    龙门物流管理系统(Ext+SSH)是一款基于Java技术栈的开源物流管理软件,提供了丰富的功能模块,旨在帮助物流企业提高运营效率、降低成本、增强客户满意度。该系统支持多种运输方式、货物类型和订单状态,可以实现...

    [Java参考文档]

    java.awt.datatransfer 提供在应用程序之间和在应用程序内部传输数据的接口和类。 java.awt.dnd Drag 和 Drop 是一种直接操作动作,在许多图形用户界面系统中都会遇到它,它提供了一种机制,能够在两个与 GUI 中...

    [Java参考文档].JDK_API 1.6

    java.awt.datatransfer 提供在应用程序之间和在应用程序内部传输数据的接口和类。 java.awt.dnd Drag 和 Drop 是一种直接操作动作,在许多图形用户界面系统中都会遇到它,它提供了一种机制,能够在两个与 GUI 中显示...

    DataCollector:通过com接口获取smartmeter数据

    数据收集器 通过com接口获取SmartMeter数据 按照此链接 还有这个 ... 确保完成此操作或类似操作:ln -s /usr/share/java/RXTXcomm.jar /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/ext/RXTXcomm.jar

    精通JS脚本之ExtJS框架.part1.rar

    12.1.3 Ext.Ajax.request提交XML数据 12.2 Ext.Updater基础 12.2.1 Ext.Updater.update方法 12.2.2 Ext.Updater.update操作示例 12.3 利用Ajax优化Web应用框架 12.3.1 多级联动菜单 12.3.2 Ajax修改用户密码 ...

    php多进程框架-模拟java多线程接口simple-fork-php.zip

    SimpleFork提供一套类似于JAVA多线程的进程控制接口,提供回收、同步、互斥、通信等方案,开发者可以关注业务问题,不需要过多考虑进程控制。 引入 composer require jenner/simple_fork require path/to/...

    java语言使用geotools工具解决相关问题.rar

    1.定义关键空间概念和数据结构的接口 Java 拓扑套件(JTS)提供的集成几何支持 使用 OGC 过滤器编码规范的属性和空间过滤器 2.干净的数据访问 API,支持功能访问,事务支持和线程之间的锁定 以多种文件格式和空间...

    Ajax请求在数据量大的时候出现超时的解决方法

    最近在用EXtjs做项目,在加载数据量特别大的时候会出现加载超时现象,在FB下查看,原来是ext默认ajax请求30秒。 在网上搜到下面的解决方法,以备参考和其他人参考。 ExtJS做Ajax请求的时候,默认的相应时间是30秒,...

    基于SpringBoot+Druid+Mybatis+Vue+Elementui的小区物联网平台项目源码+数据.rar

    extApi 对外平台开放API 相关java factory 工厂类处理包 如果门禁 认证工厂类等 init 系统启动初始化包 mqtt mqtt 相关java类 netty netty 相关java quartz 定时器 service 业务服务包 thread 线程包 util ...

    精通JS脚本之ExtJS框架.part2.rar

    12.1.3 Ext.Ajax.request提交XML数据 12.2 Ext.Updater基础 12.2.1 Ext.Updater.update方法 12.2.2 Ext.Updater.update操作示例 12.3 利用Ajax优化Web应用框架 12.3.1 多级联动菜单 12.3.2 Ajax修改用户密码 ...

    java开发oa办公系统源码-jeecg_lw:jeecg_lw

    代码生成+手工MERGE半智能开发将是新的趋势,单表数据模型和一对多数据模型的增删改查功能直接生成使用,可节省60%工作量,快速提高开发效率!!! 简介 JEECG(J2EE Code Generation)是一款基于代码生成器的智能...

Global site tag (gtag.js) - Google Analytics