为什么我在使用Ajax发送数据时在Struts 2中得到500(内部服务器错误)?

时间:2016-12-20 07:50:03

标签: java jquery ajax struts2 http-status-code-500

我正在尝试开发struts 2 Web应用程序并通过Ajax发送数据,但控制台显示 500(内部服务器错误)。我已经尝试过日志,但没有找到解决方案。 但是在后端成功执行的操作意味着我的数据已更新但输出为内部服务器错误  这是我的代码..

ajax功能

   function revertIbcData(mydata) {
            var paNo = $(mydata).attr("rollNo");
            var viNo = $(mydata).attr("idNo");
            alert(paNo + " " + viNo);

            $.ajax({
                type: 'GET',
                contentType: 'application/json;  charset=utf-8',
                dataType: "json",
                url: "revert.do",
                data: {rollNo: paNo, idNo: viNo},
                success: function (data) {
                    alert(data.msg);
                },
                error: function (abc, cba, errorThrown) {
                    alert('Error: ' + errorThrown);
                }
            });
        }

动作代码

    public String revertData() {
    try {
        conn = connect.getConnection();
        ibcDAO.revertIbcProcessDetail(conn, rollNo, idNo);
        msg = "Detail of " + rollNo + " and " + idNo + " reverted successfully.";
        System.out.println(msg);
        return "success";
    } catch (Exception e) {
        e.printStackTrace();
        return "success";
    } 
}

和struts.xml是

    <action name="revert"  class="pac.ProcessAction" method="revertData">
        <result name="success" type="json"></result>                   
    </action>      

2 个答案:

答案 0 :(得分:0)

在revertData中设置日志以确定发生错误的位置,并查看以下文章:http://tech.learnerandtutor.com/read-json-object-from-struts-2-action-by-jquery-ajax/

答案 1 :(得分:0)

试试这个:

<action name="revert"  class="pac.ProcessAction" method="revertData">
       <result name="success" type="json">
         <param name="root">jsonString</param>
       </result>                   
    </action>   

这里“jsonString”应该是一个类级变量。