【问题标题】:getting form:options value in AJAX获取表单:AJAX 中的选项值
【发布时间】:2015-02-23 04:33:58
【问题描述】:

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 传递给控制器​​。 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;
                    }
                },

..//

控制器代码:

@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 ),

不确定代码有什么问题以及如何将其传递给控制器​​并进行检索。任何输入表示赞赏。

【问题讨论】:

    标签: java jquery ajax spring jsp


    【解决方案1】:

    如果我没记错的话,你想在 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);
                }
            });     
        });
    

    这里我们将选择的值作为请求参数传递给控制器​​,在控制器中你将使用@RequestParam 注解接收这个值。

    控制器代码:

        @RequestMapping(value="/getTaxValue", method=RequestMethod.GET)
        public String getTaxValue(@RequestParam("taxValues") String[] taxValues) {
    
            return taxValues;
        }
    

    【讨论】:

    • 我想要整个下拉列表,而不仅仅是选定的值。我能够像您上面描述的那样检索所选值,但无法获取整个下拉列表值。
    • JNPW,我已经编辑了我的答案以获取数组中的所有下拉值并将其作为数组传递给控制器​​。
    猜你喜欢
    • 2013-04-08
    • 2019-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-15
    • 2020-08-09
    • 2011-12-23
    • 2020-01-11
    相关资源
    最近更新 更多