永发信息网

extjs 与java程序数据交互

答案:5  悬赏:80  手机版
解决时间 2021-04-25 09:29
感觉这个问题应该不难吧,想想也是思路很清晰地问题,一个是extjs怎样输出可供java类接收的数据,java程序需要添加什么东西接收这些数据;另一个是java程序怎样输出可供extjs接收的数据,extjs需要添加什么东西接收这些数据。就这么两条了,但是在网上总是搜不到满意的答案,要么是直接给一段没注释的代码,要么直接给几个字:“json,Ajax”。能给点实际些的描述吗,最好附加一个例子,谢谢。
最佳答案
http://wenku.baidu.com/view/5ad81cfc700abb68a982fbdf.htmlExtJS对Ajax的支持
全部回答
你懂JSON就好。 可以网络搜索一下 String 串 如何转换成 JSON。 那你交互的时候,互相传递的参数都是以JSON格式定义的字符串就OK。 然后再JAVA当中转换成JSON,JS里面也有方法可以将字符串格式 转化为JSON。 交互完成,希望采纳。

json是作为js和java交互的工具。

例如前台extjs代码:

grid = new Ext.grid.GridPanel({ id:'SearchGrid', height:400, loadMask:{msg:"数据加载中,请稍等..."}, store:ds, columns:[ {header:'部门编号',dataIndex:'deptid',width:90}, {header:'部门名称',dataIndex:'deptname',width:120}, {header:'部门人数',dataIndex:'deptperson',width:120}, {header:'已下井人数',dataIndex:'inwell',width:120}, {header:'未下井人数',dataIndex:'noneinwell',width:120}, {header:'备注',dataIndex:'memo',width:180} ], tbar:['时间:','-',{xtype:'datefield', maxValue:new Date().format("Y-m-d"), minText:'选择时间', format:"Y-m-d", value:new Date().format("Y-m-d"), id:'time' },'-',{ text:'查询', iconCls:'tool-find', handler:function (){ document.all('query').value = Ext.getDom('time').value; //alert(document.all('query').value); searchFn(Ext.getDom('time').value); ds.reload(); } },'-', { text:'导出到excel', iconCls:'prsss-button', handler:function (){ var myParams = { cc :document.getElementById('query').value }; Ext.Ajax.request({ params:myParams, method:'post', url : '/KJ222/PersonInWell/toExcel', success: function () { window.open('/KJ222/excel/toExcel.jsp?thisname=PersonInWell'); },failure: function (){ Ext.MessageBox.alert('导出失败', '可能由于某种原因导致您的导出失败 '); } }); } },'-' ], border:false });

数据源:

var ds = new Ext.data.JsonStore({ url:'/KJ222/PersonInWell/getAll', fields:[ 'deptid','deptname','deptperson','inwell','noneinwell','memo' ], baseParams:{ limit:20 }, totalProperty:'total', root:'demo' }); ds.load({ params:{start:0} });

这个就是extjs的前台。当表格加载的时候会调用ds,ds的url指向的是后台,可以是servlet。

之后你在后台得要生成和json格式一模一样的数据。比如

{ "total":239, "rows":[ {"code":"001","name":"Name 1","addr":"Address 1","col4":"col4 data"}, {"code":"002","name":"Name 2","addr":"Address 2","col4":"col4 data"}, {"code":"003","name":"Name 3","addr":"Address 3","col4":"col4 data"}, {"code":"004","name":"Name 4","addr":"Address 4","col4":"col4 data"}, {"code":"005","name":"Name 5","addr":"Address 5","col4":"col4 data"}, {"code":"006","name":"Name 6","addr":"Address 6","col4":"col4 data"}, {"code":"007","name":"Name 7","addr":"Address 7","col4":"col4 data"}, {"code":"008","name":"Name 8","addr":"Address 8","col4":"col4 data"}, {"code":"009","name":"Name 9","addr":"Address 9","col4":"col4 data"}, {"code":"010","name":"Name 10","addr":"Address 10","col4":"col4 data"} ] }

(out.print(xxx))

你的控制器最后要打出来这样格式的数据。每列要和header里面想对应,才能赋值到表格里。

ExtJS 是一个Ajax框架,交互方式就是Ajax,而JSON是一种数据格式,只不过在ExtJS中,各种组件能够很好的识别JSON,根据header就能自动把数据填充到相应的地方。当然作为Ajax,你还可以提交其他类型的数据,不过一般都是字符串之类的。特殊一点的就是还可以提交file对象。

ExtJS和JAVA交互常见的有这么几个东西:

Ext.data.Store  Ext.Ajax.request 

举个例子:

Ext.Ajax.request({

    url:'login.jsp',    //与后台JAVA交互的地址,如果用了框架,这里可以换成action访问地址

    success:function(){

    },

    failure:function(){

    },

    params:{

    username:'Test',    //这个就是我要提交的参数,这个并不是一个json

    password:'123456',

    json:'{username:'Test',password:'123456'}'    // 这个是一个json,值包括了用户名和密码

    }

})

后台:

获取用户名 String username=request.getParameter('username');

获取密码    String passoword=request.getParameter('password');

获取json    JSONObject Json=JSONObject.fromObject(request.getParameter('json'));

建议去下载有关EXt初级入门的书  然后再看看ext ajax 和json  然后再去做你想要做的

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
网上的友谊会长久?
QQ农场种植什么植物好
2010年8月6日双鱼座学生考试运势,快,急急急
国产液晶电视哪个牌子比较好?(不计价格)
如何写雪灾导致损失上报民政局的材料?
远成快运(白沙洲大道)地址有知道的么?有点事
QQ三国手动和自动更新时为什么老是DATA/updat
在过几乙年,我们人类会变成什么样?
DNF我42级刷那里经验高?
怎么开通QQ飞车
现在昂达9600gso多少钱?
我登了哪个房间
男生一般喜欢什么颜色啊
史记中关于修身治世的句子
在电脑上怎么玩三潴
推荐资讯
众恒汇利超市这个地址在什么地方,我要处理点
找!找!找!
谁能帮我写一篇建议书
小红在漆黑鬼屋里带上耳机听鬼故事,听到有人
工商领秀我想知道这个在什么地方
在淘宝上我进入了钓鱼网站,那我原来的账户还
问道中的阴阳镜值多少钱啊我买的500w
什么数字排行最大,什么数字排行最小,在排行
为什么空间转载不显示
电脑机箱运行状态下,可以用手进行维修吗?
手机送话器有杂音怎么修```换了不行
非主流套装哪里有售?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?