【问题标题】:jQuery-Ajax autoComplete for Spring MVC not responding用于 Spring MVC 的 jQuery-Ajax 自动完成没有响应
【发布时间】:2012-07-04 06:00:37
【问题描述】:

我试图在我的 Spring MVC 应用程序中借助 ajax 使用自动完成功能。我参考了this。但其中存在一些问题。请指导我..

我的脚本就像..

    <script>

$(function() {
    $( "#bName" ).autocomplete({
        source: function( request, response ) {
            $.ajax({
                url: "getBatchNames.jav",
                dataType: "json",
                data: {
                        term: request.term
                      },
                success: function( data ) {                 
                    response( $.map( data.batchNameList, function( item ) {
                        return {
                            label: item.pinMasterBatchName,
                            value: item.pinMasterBatchName
                        };
                    }));
                }
            });
        },
        minLength: 1,
        open: function() {
            $( this ).removeClass( "ui-corner-all" ).addClass( "ui-corner-top" );
        },
        close: function() {
            $( this ).removeClass( "ui-corner-top" ).addClass( "ui-corner-all" );
        }
    });
});

</script>
....
<tr>
                            <td width="95%">
                            <div class="ui-widget">
                                <label style="width:35%;">Batch Name</label>
                                <form:input path="pinMasterBatchName" id="bName" class="txtBox"/>
                               </div>
                                </td>
                            </tr>

调用将转到控制器并返回地图>.. 我将描述我所做的..

在控制器类中

@RequestMapping(value="/getBatchNames.jav", method = RequestMethod.GET)
    @ResponseBody
    public Map<String, List<PinMasterData>> getZipcodes()
    {

        System.out.println("helloooo");
        List<PinMasterData> batchNameList = pinService.ListBatchesUnderClient(45);
        Map<String, List<PinMasterData>> pinMap = new HashMap<String, List<PinMasterData>>();
        pinMap.put("batchNameList", batchNameList);
        return pinMap;
    }

在我的模型类中,类就像

public class PinMasterData 
{

    @Id
    @GeneratedValue
    @Column ( name = "Id" )
    private Integer Id;

    @Column ( name = "BatchName" )
    private String pinMasterBatchName;

    @Column ( name = "Prefix" )
    private String Prefix;

实际上,调用是转到控制器并返回列表。但在那之后,jsp 页面没有显示文本字段下方的列表。问题是什么?请指导我.. 提前致谢

编辑..

success: function( data ) {
                    response( $.map( data.batchNameList, function( item ) {
                        return {
                            label: item.pinMasterBatchName,
                            value: item.pinMasterBatchName
                        };
                    }));
                            alert("hai");
                }
            });

我试过这个(检查是否回调到 ajax)。但它也没有显示那个警报框..

【问题讨论】:

    标签: spring jquery spring-mvc jquery-autocomplete


    【解决方案1】:

    控件是否到达成功回调?您可以验证是否放置如下调试器语句。

    success: function( data ) {                 
            response( $.map( data.batchNameList, function( item ) {
                return {
                    label: item.pinMasterBatchName,
                    value: item.pinMasterBatchName
    };
    

    可能不是。尝试使用完整的回调。这样,您将知道正在返回什么状态。如果存在 json 解析错误,jQuery 不会认为 ajax 调用成功。

    http://api.jquery.com/jQuery.ajax/

    寻找complete(jqXHR, textStatus)

    编辑

    用这个代替成功。如果您对 spring 的调用已返回,则执行应该在调试器处停止。如果它没有返回,我会查看服务器日志并查看呼叫响应是否由于某种原因而失败。如果它确实返回,那么我会查看数据对象,它应该包含响应的状态(注意;我不记得确切的键名。)。查看响应文本并复制 responseText 并将其放入 http://www.jsonlint.com 并查看它是一个有效的 json。 (希望你熟悉 firebug 在 firefox 中调试)。

    complete: function( jqXHR, textStatus ) {                 
            debugger;
            response( $.map( data.batchNameList, function( item ) {
                return {
                    label: item.pinMasterBatchName,
                    value: item.pinMasterBatchName
    };
    

    【讨论】:

    • 我在成功内给出了警告。但它也没有显示。我认为它与响应有关(即使用 json),因为我被调用到控制器。我对这个 ajax 真的很陌生。所以请指导我
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-19
    • 2013-02-05
    • 2012-07-31
    • 1970-01-01
    • 2012-08-24
    • 1970-01-01
    相关资源
    最近更新 更多