首先,这两种提交方式的写法大部分是相同的,但是在使用起来各有各的有点。
Ajax的使用比较灵活,可以用于ExtJS中许多组件的提交,在页面上可以获取你从后台传送过来的若干个值,在传参数的提交中有点需要注意:一、如果值传一到两个参数,并且参数值不是中文的情况下,可以在servlet的后面直接带参数来传送;二、如果传的参数过多,或者需要传送中文到后台,那么建议在Ajax中使用params属性,写法如:params:{name:'value',psd:'密码'},这种情况传送的话,在后台就不会出现中文乱码的问题,而且书写也比较美观。接收值的话使用var json = Ext.util.JSON.decode(result.responseText);,这个你定义的json是你从servlet中获取的JSON对象,然后调用JSON对象的属性,就是你需要获取的值。
submit用在一个FormPanel的提交,这种方式的提交在对于表单来说的话比较方便(相对于Ajax提交来说),它的这种提交在url中不用带参数,它会自动将FormPanel中所有的组件值传递到后台,而且你在提交之前还可以做一个判断if (FormName.getForm().isValid()),这表示当你的表单组件全部通过验证之后,你的数据才会提交打后台(例如:一个textfield需要让你输入一个不带小数点的数字,而这个时候你输入了一个带小数点的数字的话,当你点击提交按钮的时候,submit不会出发,并且会在你的textfield组件上使用红色的线来标示这个组件的输入出现了问题)。但是在获取值方面不如Ajax灵活,只能获取success属性的值。