【问题标题】:JSON response from Spring Controller not getting resolved来自 Spring Controller 的 JSON 响应未得到解决
【发布时间】:2011-08-14 14:53:37
【问题描述】:

我有一个与给定 here 类似的问题。但是我无法用那里提供的解决方案来解决它。

我的 spring 应用程序 xml 只有 mvc 注释驱动元素。

<mvc:annotation-driven />

控制器代码如给定。

@RequestMapping(value = "/search", method = RequestMethod.GET)
public @ResponseBody
Book performSearch(@RequestParam("CHARS") String title) {
return (Book) library.getBook(title);
}

在我的 javascript 中,我有一个 jQuery 请求,它试图从 url 获取 JSON。

<script type="text/javascript"> 

function doSearch() {   
    $.getJSON("addBook/search.htm", { CHARS: $('#searchBox').val() }, function(data) 
    {   
        alert("Got Response");
        $('#results').text('');
            for (var index in data) {
                $('#results').append('<p>' + data[index].title + '</p>'); 
            }
    });
 }
 </script>

我有一个调用这个 JS 的文本框

    <input type="text" id="searchBox" onKeyUp="doSearch();" />

<div id="results">Results</div>

虽然调用了键入控制器代码,但返回的响应有状态代码 406 并显示不可接受

这可能是什么问题?我还可以在 jQuery 调用中将“Accept”标头的值设置为 application/json 吗?如果有怎么办?

我正在使用语言环境解析器来解析语言环境。这会是个问题吗?

谢谢 丹努什

【问题讨论】:

    标签: jquery json spring-mvc


    【解决方案1】:

    确保您的类路径中有 jackson 和 jackson-mapper jar。

    【讨论】:

    • 我的 POM 中有杰克逊核心。这还不够吗?还是我需要全部添加&lt;dependency&gt; &lt;groupId&gt;org.codehaus.jackson&lt;/groupId&gt; &lt;artifactId&gt;jackson-core-lgpl&lt;/artifactId&gt; &lt;version&gt;1.7.4&lt;/version&gt; &lt;/dependency&gt;
    • @dhanush 检查您的WEB-INF/lib。有吗?
    • 哦,肯定有。我的意思是我的 lib 中只有 jackson-core-lgpl-1.7.4.jar 是通过我的 maven 项目的 POM.xml 文件(作为依赖项)下载的。这还不够吗?
    • 进行了更多研究,发现您还需要将 jackson mapper 添加到 classpath 。添加了 pom 依赖 &lt;dependency&gt; &lt;groupId&gt;org.codehaus.jackson&lt;/groupId&gt; &lt;artifactId&gt;jackson-mapper-lgpl&lt;/artifactId&gt; &lt;version&gt;1.7.4&lt;/version&gt; &lt;/dependency&gt; 并重新部署了应用程序。现在像魅力一样工作。谢谢
    猜你喜欢
    • 2011-03-21
    • 2015-05-20
    • 2017-09-06
    • 2012-04-01
    • 2020-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多