Jsp代码如下:
<form:select id="taxId" path="taxSeqNo" cssClass="defaultText" <form:options items="${taxListItemsBean.taxList}" itemValue="key" itemLabel="label"/>
</form:select>
其中${taxListItemsBean.taxList}声明为
private List<KeyItemDto> taxList;
在form.java类中。
我想通过ajax将此taxList传递给 Controller 。 Ajax 中的代码是:
//..
var options = {
url: "${pageContext.request.contextPath}/abc.html",
dataType : 'json',
contentType:'application/json',
data: JSON.stringify(taxList ),
beforeSubmit: function(data,set,options) {
if(!confirm("xxx?")) {
return false;
}
},
..//
Controller 代码:
@RequestMapping(value = "/abc.html", method = RequestMethod.POST)
public ModelAndView executeConfirmTaxHttpServletRequest request,
, @RequestBody List<KeyItemDto> taxList) {
System.out.println("taxList "+taxList);
}
通过上面的代码,我在 Ajax 中的这一行得到了一个 NPE:
data: JSON.stringify(taxList ),
不确定代码有什么问题以及如何将其传递到 Controller 并检索。任何意见表示赞赏。
最佳答案
如果我没记错的话,您想要在ajax中获取下拉选择的值,然后您想要从ajax调用 Controller 。
如果我的理解是正确的,那么您必须使用 JQuery .change()
函数来获取所选值,然后对服务器进行 ajax 调用。
下面的代码给出了清晰的想法,
js代码:
var taxValues = [];
$('#taxId option').each(function() {
taxValues.push( $(this).attr('value') );
});
$('#taxId').change(function(e) {
//var taxValue = $('#taxId :selected').val(); // gives the dropdown selected value
$.ajax({
url: "/getTaxValue",
data: "taxValues="+ taxValues, //passing the selected value to controller as a parameter
success: function(result){
alert(result);
}
});
});
这里我们将选定的值作为请求参数传递给 Controller ,在 Controller 中您将使用@RequestParam注释接收该值。
Controller 代码:
@RequestMapping(value="/getTaxValue", method=RequestMethod.GET)
public String getTaxValue(@RequestParam("taxValues") String[] taxValues) {
return taxValues;
}
关于java - 获取表格:options value in AJAX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28666949/