关于Extjs3.2 与 struts2.0交互的问题

小弟用Extjs与struts2配置做了个小系统,前台Extjs调用了newdept.action提交数据,原想在提交数据成功或者失败时能够给extjs返回信息,可是只收到了success成功或失败的信息,无法返回附加的消息,部分代码如下请各位朋友帮忙看看,谢谢。
ext提交部门代码

submit:function(){

            this.getForm().submit({
                        url:'newdept.action', 
                        success:this.onSubmit ,
                        failure:this.onFail,
                        waitTitle:"数据传送" , 
                        waitMsg:"数据传送中,请稍候..." , 
                        scope:this}) ;

}

onFail:function(_form, _action){
alert(_action.result.msg);
}

action部分的代码
if( DeptManager.isExist(deptNo)){
ctx = ActionContext.getContext();

request = (HttpServletRequest)ctx.get(ServletActionContext.HTTP_REQUEST);

response = (HttpServletResponse)ctx.get(ServletActionContext.HTTP_RESPONSE);
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.getWriter().write("{success:false,msg:'部门编号已经存在!'}");
return null;
}

问题是能够接收到success:false,不能收到msg;系统提示:_action.result undefined;
很奇怪都是我把url改成url:'test.jsp',改成直接在jsp中执行<%out.print("{success:false,msg:'errrrr'}")%>成功。

2个回答

把failure 函数换成下面的代码试试,但看是哪种类型的错误。
[code="js"]failure: function(form, action) {
switch (action.failureType) {
case Ext.form.Action.CLIENT_INVALID:
Ext.Msg.alert('Failure', 'Form fields may not be submitted with invalid values');
break;
case Ext.form.Action.CONNECT_FAILURE:
Ext.Msg.alert('Failure', 'Ajax communication failed');
break;
case Ext.form.Action.SERVER_INVALID:
Ext.Msg.alert('Failure', action.result.msg);
}
}[/code]

Ext的ajax请求的failure一般指不能连接到服务器,虽然你返回了success:false,但它走的还是success的处理函数。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!