今天终于解决了最后一个问题,呵呵,这个也算是新手问题吧,说是解决,其实不以为然,就是换个角度来处理罢了,也许这个就是程序员成长过程当中的一步而已了,说实话,我只是一个应该是可以及时完成任务的人.刚出来工作不久,呵呵,没有多少人那样的轰轰烈烈,我只是在一个小公司打小工,不过仍然是在不断的学习成长着,跟你和他没有多少分别,呵呵,知足常乐,我就是这样的一个人.
好了,还是言归正传吧,首先,上周末发下任务来,说是用EXT写一个小的分析系统(WEB形式的)呵呵,EXT,在之前学过一点点,不过说实话,这里也不是自己写,只是框架别人搭建好了,自己照着写自己的那部分,也就是几个板块补充完整,(说实话,这里写的对一些人来说不一定管用,为什么?因为这里只是千千万万个框架形式当中的一个而已.)
还是说问题吧.(首先还是说说框架,后台是java,前台说是jsp,其实有点冒名顶用,因为除了那一句div之外,全部都是EXT,不管怎么样,就是)(Spring(控制)+EXT(前台界面+跟后台通信)+Hibernate(数据库数据处理))其中,用servlet来进行通信.和EXT接触.通过下面的一点问题,大家就会看到.
问题代码:
- /*************************ajax&action方式删除*************************/
- function remove() {
- //得到选中的行Grid.grid.getSelectionModel().hasSelection()
- var rows = grid.getSelections();
- if (rows.length == 0 && selectedRow != null)
- rows[0] = selectedRow;
- //如果至少有一行被选中
- if (rows.length > 0)
- {
- Ext.MessageBox.confirm('选择', '您确定要删除记录吗?',
- function(btn) {
- if (btn == 'yes') {
- var ids = new Array();
- var idsone = new Array();
- for (var i = 0; i < rows.length; i++) {
- //取得ID列。注意:这里取的是表格中列名为remark的列
- ids[i] = rows[i].get('intfName');
- idsone[i] = rows[i].get('intfName');
- }
- Ext.Ajax.request({
- //请求地址。注意:路径
- url:'<%=webapp%>/servlet/OuterIntfServlet?action=delete&ids=' + ids,
- //提交参数组
- params: 'idsids='+ids,
- //idsone:idsone,
- //password:ids
- //LoginName:Ext.get('LoginName').dom.value,
- //LoginPassword:Ext.get('LoginPassword').dom.value
- //},
- //成功时回调
- //method : 'POST',
- success: function(response, options) {
- //获取响应的json字符串
- var responseArray = Ext.util.JSON.decode(response.responseText);
- if (responseArray.success == true) {
- Ext.Msg.alert('成功', responseArray.info);
- }
- else {
- Ext.Msg.alert('失败', responseArray.errorInfo);
- }
- }
- });
- this.ds.reload();
- }
- }
- );
- }
- else
- {
- Ext.MessageBox.alert('提示', '要执行删除操作, 请至少选择一条记录!');
- }
- //alert('remove end...');
- }
- /*************************ajax&action方式删除*************************/
就是这一句话
- Ext.Ajax.request({
- //请求地址。注意:路径
- url:'<%=webapp%>/servlet/OuterIntfServlet?action=delete&ids=' + ids,
- //提交参数组
- params: 'idsids='+ids,
主要是出在URL,不知道传回servlet为什么会是Unicode编码方式,所以无从下手转码,这里也许跟java文件,js文件等的编码有关系,(这里说一句,由于做写模板的人不是我,呵呵,除了jsp它用utf-8的编码,包括文件的编码格式,其他的文件编码格式用的ANSI,就是熟悉的GBK了,呵呵,所以出现了这样的问题?其实我也不知道,如果有人说,我可以全部都用UTF-8然后再试试,不用了,呵呵,等有时间再来试试吧,由于现在还得工作,只是写下心得,等有机会和时间了我肯定会注意到的.也会解决的,这里传递参数到后台,就是由于URL传递给servlet出现乱码,而params就不会,为什么,说实话,关于研究这里的问题,我还不是很深入,所以不敢来妄加评论,所以只能说,我找到了替代方法,如果说,换台电脑不会出现问题,那敢情好.直接删除或注销掉params的,把后台的参数换回去,就可以了,但是我想这里是一个问题,所以必须提出来看看.虽然上面,用参数和URL,来传递到后台都是同样的效果,但是传递的地方不一样,虽然都是同一个,
这里只是从中学到了很多,解决这个问题,说实话,刚开始我就直接用到了另外的方式来传递,也许是做了几个这样的问题了吧,所以直接就用params来处理了,(其实不是EXT里面做多了,只是看到了传递参数有几个地方都可以,所以直接想用其他方式可以不,呵呵,EXT,还是第一次做.)一试就行了,但是还是花了我不少时间,因为,我想直接用URL来得比较的好,至少看上去完美一些,时间换来的也不是问题的解决,最终想想,就跟上一次写,(其实也是第一次写)一样,搁置一下,等待这自己深入之后再来解决比较的好.
这里说的只是解决问题的方式罢了,
关于EXT,还是看看API,学习比较好,呵呵,
这个是它的半中文API,大家可以参考一下.