ExtJS成功动作未被调用

时间:2014-11-12 07:59:58

标签: java ajax json extjs struts2

我在服务器端使用struts2,在UI上使用ExtJS4。我有一个简单的表单,我提交给服务器。尽管我刚刚返回ActionSupport.SUCCESS,但响应总是转到请求的失败情况。我使用strons的json-plugin以json格式返回响应。如何检查返回的内容?有人可以帮我解决这个问题吗?

 validateForm: function(button){
            var form=button.up('form').getForm();
            form.url='addData';
            form.submit({
                success: function(form, action) {
                    Ext.Msg.alert('Success', 'Submit success');
                },

                failure: function(form, action) {
                    Ext.Msg.alert('Failed', 'Error returned from the server');
                }
            });
    }

struts.xml中

<package name="ELM29" extends="struts-default,json-default">
        <action name="addData" class="com.test.elm.action.Data"
            method="processData">
            <result type="json"></result>
        </action>
    </package>

动作类:  我有所有变量的getter setter和action类扩展了ActionSupport

public String processData(){

        System.out.println("Clip: "+getClipName());
        System.out.println("AS val: "+ActionSupport.SUCCESS);
        return ActionSupport.SUCCESS;

    }

另外,我想在网格中显示数据。我有一个返回List对象的方法。但我得到了一个例外

Exception occurred during processing request: java.util.ArrayList cannot be cast to java.lang.String: java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.String.

我无法在这里找到错误。请帮我纠正这个错误。

1 个答案:

答案 0 :(得分:1)

我通过以下方式解决了这个问题:

- 创建一个布尔变量成功     private boolean success

-added变量success

的getter和setter方法

- 在方法中设置successtrue的值。在我的情况下,它是processData()

通过这样做,在json响应中将有一个名为success的属性,其值设置为true

希望它有所帮助。!