$ .ajax发布到struts2操作返回内部服务器错误

$ .ajax发布到struts2操作返回内部服务器错误

问题描述:

我想执行这个AJAX帖子,但得到一个服务器500错误。如果我不发送任何数据,我可以看到它在控制器中设置了中断点。但是,当我发送数据它doesnt并返回500错误。帮帮我?谢谢。

在萤火控制台,
请求报头具有Content-Type application/x-www-form-urlencoded; charset=UTF-8 和响应作为com.hearsay.example.mktpx.ui.action.LoadDefaultsAction.retrieveBenchmark()

代码:

$.ajax({ 
    type : "POST", 
    url : "loadBenchMark", 
    data : {'ruleset':'1'}, 
    success : function(data) { 
     console.log("success"); 
     }, 
      error:error : function(request, textStatus, errorThrown) { 
     console.log("Error Thrown:" +request.statusText); 
     } 
}); 

动作类别:

public String retrieveBenchmark(int ruleset) { 
    setBenchmarkProductList(retrieveBenchmarkProductList()); 
    return SUCCESS; 
} 

struts.xml中

<action name="loadBenchMark" 
     class="com.hearsay.example.mktpx.ui.action.LoadDefaultsAction" method="retrieveBenchmark"> 
    <result type="json"></result> 
</action> 

首先,从该方法中删除ruleset参数。然后,添加一个实例变量,而不是动作类,有标准的getter和setter方法 - 就像这样:

private int ruleset // or String, if you're passing String values 

public int getRuleset() { 
    return this.ruleset; 
} 

public void setRuleset(int ruleset) { 
    this.ruleset = ruleset; 
} 

这是参数传递给一个Struts动作的方式 - Struts将会调用相应的制定者。请记住使用正确的数据类型 - 不要通过int变量的String值。

+0

尝试过。没有工作。 – silpa 2011-03-30 15:13:11

+0

@silpa查看我的更新。 – Tommi 2011-03-30 15:27:52

+0

谢谢。我的实际代码有许多不同类型的数据(复杂类型)的Ajax调用。我正在尝试用一个简单的工具先让它工作。我想知道代码中有什么错误。 – silpa 2011-03-30 15:52:55