关于Extjs表单提交中success的当下见解

目前所做的项目中,用到了一个表单提交。因为不太会用jsp操作数据库,所以用Ext为前台,jsp中间传数据,java作为真正后台操作数据库。

所以上出现了一个问题,Ext表单提交的success和failure,是提交到jsp就判定success了还是说数据库操作完成后才算success。

当然对于人类来讲,数据库操作成功了才应该返回success。但是对于电脑而言,无论你数据库操作之后返回true(代表操作成功)或者false(代表操作失败),jsp的代码依然会继续执行,给前台返回success信息。如下代码:

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<jsp:useBean id="OnAdd" class="tree.OnAdd"></jsp:useBean>
<%
	String userInfo=request.getParameter("userInfo");       //获取前台传来的数据
	System.out.println(userInfo);
        OnAdd.setParam(userInfo);                               //java后台设置参数
%>

<%=OnAdd.trans()%>                                              //后台操作,返回值为true或false,代表数据库操作成功与否


到<%=OnAdd.trans()%>这,对于电脑而言只是一个boolean的值而已,如果单纯的在前台输出消息,那么一定是有隐患的。我认为它只代表了提交到jsp部分是成功的,往后它就不管了,但是我们不能不管。

success : function() {                     					 //单纯的返回
					Ext.Msg.alert('信息', '成功');
									},
failure : function() {
					Ext.Msg.alert('信息','错误');
				}

所以,要在这个返回的基础上,再一次做出判断,完整的提交如下:

var values=addForm.getForm().getValues();         //获得表单所有值,必须getForm以获得BasicForm
Ext.Ajax.request({                                 //Ajax提交
				url : 'Add.jsp',
				params:{userInfo:Ext.encode(values)},
				waitTitle:'正在提交',
			        waitMsg:'正在提交数据,请稍后',
				success : function(resp) {                     
					if(resp.responseText==false)         //如果数据库操作返回false,代表操作失败
					{
					Ext.Msg.alert('信息', '不成功');}
					else{                                //二次判断,防止给出错误的提示					                                Ext.Msg.alert('信息', '成功'); }
				},
				failure : function() {
					Ext.Msg.alert('错误');
				}
			});


这是目前我所会的东西。感觉前端、中间、后台传递方式有点繁琐,但是我不会直接用jsp操作数据库所以只能这样。以上拙见,便于记录此时的见解,或许以后会有更好的方式我会学到。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值