当前位置: 代码迷 >> JavaScript >> ExtJS,能否帮小弟我解决一上这个有关问题
  详细解决方案

ExtJS,能否帮小弟我解决一上这个有关问题

热度:219   发布时间:2012-10-31 14:37:31.0
ExtJS高手请进,能否帮我解决一下这个问题?
fileUpload和表单提交无法接收返回数据的问题
var form = new Ext.form.FormPanel({
id:'form',
layout:'form',
url:path+'studs.go', //数据提交的地址
method:'post',
frame:true,
fileUpload:true,
// enctype:'multipart/form-data',
width:320,
height:400,
labelWidth:80,
// standardSubmit:false,        //默认就是false,意思是ajax方式提交
defaults:{width:150,labelSeparator:':'},   //作用到items上的属性
bodyStyle:'padding:25px 25px 5px',
buttonAlign:'center', //按扭的对齐方式为居中
items:[
       {
       xtype:'textfield',
       id:'stud_uid',
       fieldLabel:'学生UID',
       hideLabel:true, //隐藏标签
       hidden:true //隐藏输入框本身
       },
       /*添加comboBox用于显示班级名称,从班级后台数据库加载*/
       _clsCombo,
       {
       xtype:'textfield',
       id:'stud_id',
       fieldLabel:'学生ID',
       blankText:'学生ID不能为空',
       allowBlank:false,
       vtype:'alphanum',
       listeners:{
          change:changer
          }
       },
       {
       xtype:'textfield',
       id:'stud_name',
       fieldLabel:'姓名',
       blankText:'学生姓名不能为空',
       allowBlank:false,
       listeners:{
          change:changer
          }
       },
      _sexCombo,
       {
       xtype:'textfield',
       id:'stud_addr',
       fieldLabel:'地址',
       blankText:'学生地址不能为空',
       allowBlank:false,
       listeners:{
       change:changer
          }
       },
       {
       xtype:'textfield',
       id:'stud_qq',
       fieldLabel:'QQ',
       blankText:'学生QQ不能为空',
       allowBlank:false,
       listeners:{
       change:changer
           }
       },
      {
       xtype:'textfield',
       id:'stud_mail',
       blankText:'学生Email不能为空',
       fieldLabel:'Email',
       vtype:'email',
       listeners:{
       change:changer
       }
       },
       {
       id:'stud_img',
//        xtype: 'fileuploadfield',
//            emptyText: 'Select an image',
//            buttonText: '',
       xtype:'panel',
       tag:'div',
       cls:'wh',
       fieldLabel:'图片',
       labelSeparator:':',
//         buttonCfg: {
//               iconCls: 'upload-icon'
//           },
       html:'<font color="red">无图</font>',
            listeners:{
            change:changer
            }
       },
       {
       xtype:'textfield',
       id:'state', //增加一个标志位,记录修改状态
       hidden:true,
       value:'0' //2:新增,1:修改,0:原记录
       }
],
buttons:[
         {
        text:'保存',
        handler:function(){
        var studUid = Ext.getCmp("stud_uid").getValue();
//         Ext.Msg.alert(studUid);
        if(studUid ==""){
        form.getForm().submit({
//         params:{cmd:'save'}});
url:path+'studs.go?cmd=save',
method:'post',
   success:function(form,action){
        Ext.Msg.alert("提示",action.result.success);
        if(action.result.success == true){
        var Stud = Ext.data.Record.create([ //声明一个Stud对像,用于添加数据
                  {name:'stud_uid',type:'string',mapping:'stud_uid'},
                  {name:'stud_clsuid',type:'string',mapping:'stud_clsuid'},
                  {name:'stud_id',type:'string',mapping:'stud_id'},
                  {name:'stud_name',type:'string',mapping:'stud_name'},
                  {name:'stud_sex',type:'string',mapping:'stud_sex'},
                  {name:'stud_addr',type:'string',mapping:'stud_addr'},
                  {name:'stud_qq',type:'string',mapping:'stud_qq'},
                  {name:'stud_mail',type:'string',mapping:'stud_mail'},
                  {name:'stud_img',type:'string',mapping:'stud_img'}
            ]);
            var stud = new Stud({
               stud_uid:action.result.studUid, //具体创建这个对像
                       stud_clsuid:action.result.studClsuid,
                       stud_id:action.result.studId,
                       stud_name:action.result.studName,
                       stud_sex:action.result.studSex,
                       stud_addr:action.result.studAddr,
                       stud_qq:action.result.studQq,
                       stud_mail:action.result.studMail,
                       stud_img:action.result.studImg});
            studStore.insert(0,stud); //在第1行插入此新记录
            studGrid.getSelectionModel().selectRow(0); //设置则插入的记录为选中
            Ext.Msg.alert("提示","保存成功!!!!!!!!!!!!!");
        }else{
        Ext.Msg.alert("提示","保存不成功。");
        }
        },
        failure:function(form,action){
        Ext.Msg.alert("提示","服务器访问不成功rr!");
        }
        });
JS页面中是这样写的
Java代码:
String json="{success:"+boo+",studUid:'"+studUid+"',studClsuid:'"+clsUid+"',studId:'"+studId+
"',studName:'"+studName+"',studSex:'"+studSex+"',studAddr:'"+studAddr+"',studQq:'"+studQq+
"',studMail:'"+studMail+"',studImg:'"+studImg+"'}";
log.info("json<<<<<<<<<<<<<<"+json);
rep.getWriter().write(json);
我就是不明白为什么返回的数据无法接收服务器不报任何错误,只是浏览器显示ext-all.js语法错误,高手帮我解决一下,感激不尽

问题解决了,在这里跟遇到过同样问题还为解决的朋友共享一下:
原因出在Java代码中request.setContentType("text/plain"),把plain改成html就OK了!!!!!!
  相关解决方案