Spring 3.0 使用 Jackson 消息转换器进行 JSON 响应

2024-03-25

我将我的消息转换器配置为杰克逊的消息转换器

class Foo{int x; int y}

并在控制器中

@ResponseBody
public Foo method(){
   return new Foo(3,4)
}

由此,我期望从服务器返回一个 JSON 字符串 {x:'3',y:'4'} ,而无需任何其他配置。但我的 ajax 请求收到 404 错误响应

如果该方法使用 @ResponseBody 注解,则返回类型将写入响应 HTTP 主体。返回值将使用 HttpMessageConverters 转换为声明的方法参数类型。

我错了吗 ?或者我应该使用序列化程序自己将响应对象转换为 Json 字符串,然后返回该字符串作为响应。(我可以正确地做出字符串响应)还是应该进行一些其他配置?就像为 Foo 类添加注释一样

这是我的conf.xml

<bean id="jacksonMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
  <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
  <list>
    <ref bean="jacksonMessageConverter"/>
  </list>
</property>

您需要以下内容:

  1. 设置注解驱动的编程模型:put<mvc:annotation-driven /> in spring.xml
  2. 放置 jaskson jar (Maven artifactId 是org.codehaus.jackson:jackson-mapper-asl)在类路径中。
  3. 使用如下:

    @RequestMapping(method = { RequestMethod.GET, RequestMethod.POST })
    public @ResponseBody Foo method(@Valid Request request, BindingResult result){
    return new Foo(3,4)
    }
    

这对我有用。

请注意,

  1. @ResponseBody应用于返回类型,而不是方法定义。
  2. 你需要@RequestMapping注解,以便Spring能够检测到它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring 3.0 使用 Jackson 消息转换器进行 JSON 响应 的相关文章

  • 查找所有数组的长度多维数组,Java

    我想使用多维数组来存储数据网格 但是 我还没有找到一种简单的方法来查找长度2nd数组的一部分 例如 boolean array new boolean 3 5 System out println array length 只会输出3 是否
  • Grails 项目 - Servlet 调用 - ClassNotFoundException:javax.servlet.AsyncContext

    我在用 IntelliJ IDEA 终极版 12 4 grails 2 2 0 BuildConfig groovy 文件中的 grails servlet version 2 5 并实现了简单的 servlet post 请求 使用 RE
  • 在 json 中解析尾随字符

    我正在尝试检查 json 是否有效 并且我遇到了奇怪的行为 当我将一些字符附加到可解析的 json 时 jackson 和 gson 都会解析它 并且它们会忽略尾随字符 我想检查 json 是否严格有效 请帮忙 我尝试了几个标志mapper
  • Android:TelephonyManager 类

    我不明白为什么 API 文档中这么写TelephonyManager类是public 但是当我尝试创建一个实例时 它说它不是公共类 并且无法从包中访问 我看到它也说使用Context getSystemService Context TEL
  • WSDL2Java 抛出无法找到主类:org.apache.axis.wsdl.WSDL2Java

    我正在尝试从远程 Web 服务创建 java 文件 我下载了axis 1 4 将lib文件夹复制到c data axis lib其中包含这些文件 axis jar 轴 ant jar commons discovery 0 2 jar co
  • JTree ConvertValueToText 返回在更改时被截断

    我有一个自定义树实现convertValueToText 此实现取决于某些全局状态 如果返回的字符串比先前返回的字符串更长 实际上我认为更宽 因为以像素为单位触发它 则文本将被截断并用 填充 当重绘是由 取消 选择元素或某个元素引起时 情况
  • Eclipse RCP - 将视图与编辑器区域堆叠?

    在开发 Eclipse RCP 应用程序时 是否可以将视图与编辑器区域堆叠在一起 像这样 我有多个列表 表格 我想创建一种预览组合 当通过单击鼠标选择列表上的项目时 我希望我的预览合成显示该项目的数据 如果用户双击某个项目 我想在预览合成后
  • Ajax JSON 数据和灯箱冲突

    我有一个带有灯箱插件的画廊设置光廊 http sachinchoolur github io lightGallery docs 该画廊与静态 HTML 完美配合 当我动态抓取 API 数据并尝试让灯箱处理这些项目时 问题就出现了 我似乎无
  • 在 Spring xml 配置中创建 Guava TypeToken?

    我希望能够注射Guava 类型令牌 http docs guava libraries googlecode com git javadoc com google common reflect TypeToken html对象通过在 Spr
  • Java 声音可视化器

    我正在尝试制作一个java声音可视化工具 但我完全不知道如何在实时处理音频后立即从提取的音频中获取字节 我可以将程序与 wav 文件同步 但这不是我想要做的 我想用程序生成声音 然后播放它 而不将其保存在任何地方 谢谢您的帮助 本文可以帮助
  • java中永远不会出现的异常

    我为点和向量编写一个类 我想用它们来计算向量的点和范数 这些是点类和向量类 public class Point public float x y public class MyVector public Point start end 我
  • 使用 Haskell 将函数注入到 Java .class 文件中

    我使用 Haskell 编写了一个 Java 字节码解析器 它工作得很好 然而下一步让我完全难住了 我的 Haskell 程序需要修改 class 文件 以便在执行时 Java 程序打印 输入 此处的方法名称 在执行方法之前 并且 退出 此
  • 短 2 个字节

    我正在从串行端口读取一个长度为 133 字节的数据包 最后 2 个字节包含 CRC 值 我使用 Java 将 2 个字节值制成单个 我认为很短 这就是我所做的 short high 48 0x00ff short low 80 short
  • Spring-roo REST JSON 控制器损坏日期字段

    我有一个以两种方式使用的数据实体 我在页面加载时用其中的一些数据填充表格 当您单击该列的一行时 我通过 AJAX 获取该项目的详细信息并将其显示在表单字段中 我在服务器端使用 Spring Roo 生成的 REST 端点 在客户端使用 Ba
  • java mysql 准备好的语句

    我正在尝试使用 java 向数据库中进行简单的插入 它告诉我我的 sql 语法已关闭 但是 当我复制打印出来的字符串并将其放入 phpmyadmin 中的 sql 命令中时 它会正确执行该命令 并且我似乎无法弄清楚 java 中的字符串查询
  • 空检查时可能未初始化错误

    我正在检查变量是否已初始化 但此时 netbeans 给了我variable reader might not have been initialized警告 我该如何解决 抑制这个问题 这是我的代码 摘要 final Reader rea
  • Android Webview:无法调用确定的可见性() - 从未见过 pid 的连接

    我有一个 Android Webview 当我单击链接下载文件 pdf 图像等 时 我收到一条错误消息 Error message Cannot call determinedVisibility never saw a connectio
  • Java有没有类似微软CHESS的工具?

    是否有类似于 Microsoft 的现有 Java 工具CHESS http research microsoft com chess 或者 CHESS 源代码是否开放 以便我可以尝试将其转换为 Java 谷歌的织线工 http code
  • removeall 和removeif 的用例

    我找到了这个 fun main val list MutableList
  • AWS SES模板html部分是多行

    我正在使用 AWS SES 按照文档发送电子邮件https docs aws amazon com ses latest DeveloperGuide send personalized email api html https docs

随机推荐

  • 引用 dll 而不复制它们 C#

    当我们创建一个新的C 项目并引用一个dll时 该dll在编译项目时会被复制到项目的输出目录中 有没有一种方法可以引用 dll 文件而不将它们复制到项目的输出目录 并让可执行文件在运行时使用它们 类似于Assemblies如果我没错的话 我尝
  • AWS CDK 将 API 网关 URL 传递到同一堆栈中的静态站点

    我正在尝试在单个堆栈中部署 S3 静态网站和 API 网关 lambda S3 静态站点中的 JavaScript 调用 lambda 来填充 HTML 列表 但它需要知道 lambda 集成的 API 网关 URL 目前 我生成一个 Re
  • 如何强制视图刷新而不从可观察对象自动触发它?

    Note 这主要是为了调试和理解 KnockoutJS 有没有办法显式请求 Knockout 从 已绑定 视图模型刷新视图 我正在寻找类似的东西 ko refreshView 我知道这不是 Knockout 的预期用途 但我仍然想知道是否有
  • android studio 使用 build.gradle 进行地址清理

    我正在尝试使用此处描述的地址清理程序 使用 clang 构建我的应用程序 https github com google sanitizers wiki AddressSanitizer https github com google sa
  • 获取HashMap值的count个数

    使用这里的代码link https stackoverflow com questions 37129625 read and find string from text file将文本文件内容加载到 GUI Map
  • 谷歌分析用户 ID 跟踪

    我通过通用分析实现了 userID 跟踪 ga set uid 我认为我应该能够在报告中看到特定用户 但似乎甚至不可能在任何类型的报告中显示不同的用户 我在分析 API 中也没有找到这个选项 我希望能够跟踪该特定用户创建的事件 是否可以在不
  • 如何重命名 git stash?

    我有一个名称不正确的藏品 我想修正这个名称 使其准确 如何重命名藏匿处 让我们假设您的存储列表如下所示 git stash list stash 0 WIP on master Add some very important feature
  • 如何使用 Astro 获取查询字符串参数

    我正在使用一种名为 Astro 的新技术 https astro build https astro build 构建一个完全静态的服务器端渲染页面 交付零 JS 我有一个带有简单文本输入表单的页面 当用户填写该表单并单击提交按钮时 它会向
  • gpus_ReturnGuiltyForHardwareRestart

    我找到了有关该错误的更多详细信息 它似乎与信息有关 gpus ReturnGuiltyForHardwareRestart google了一下 似乎关于这个bug的信息相当有限 您以前遇到过这种情况并且知道如何解决吗 我认为我有必要更新我所
  • 下载并解压内存中的 gzip 文件?

    我想使用 urllib 下载文件并在保存之前将文件解压缩到内存中 这就是我现在所拥有的 response urllib2 urlopen baseURL filename compressedFile StringIO StringIO c
  • 将会话从模板视图传递到 python 请求 api 调用

    我想使用请求库从 Django TemplateView 进行多个内部 REST API 调用 现在我也想将会话从模板视图传递到 api 调用 考虑到性能 推荐的方法是什么 现在我正在提取cookie从目前的request模板视图中的对象
  • 将 C 字节数组转换为 long long

    我的应用程序中有一个 8 字节数组 其中包含以下数据 00000133339e36a2 该数据代表一个长整型 在写入数据的平台上 在 Mac 上这将是一个长整型 其值为 1319420966562 在实际应用中 这是一组半随机的数据 因此数
  • D3 弧形端部 V 形

    我画了一个arc https github com d3 d3 shape arcs使用 D3 js 默认情况下具有方形末端 var arc d3 arc innerRadius 0 outerRadius 100 startAngle 0
  • 文件包含路径分隔符。

    当我尝试检查特定文件是否存在时 我得到java lang illegalArgumentException File contains a path separator 使用 getFileStreamPath 执行此操作的正确方法是什么
  • Laravel 按字段长度排序

    我想构建一个按特定字段长度对数据进行排序的查询 我需要将此查询重写为 laravel 的 Eloquent ORM SELECT FROM table ORDER BY CHAR LENGTH field 看起来orderByRaw这就是您
  • 有人有使用 OpenCV 和 python 进行描述符提取的示例吗?

    我正在尝试使用 OpenCV 从图像中提取 SURF 描述符 我正在使用 OpenCV 2 4 和 Python 2 7 但很难找到任何提供有关如何使用这些函数的信息的文档 我已经能够使用以下代码来提取特征 但我找不到任何明智的方法来提取描
  • Struts 2下载-如何动态配置文件名?

    我正在开发一个应用程序 人们可以将所需的文件从数据库中提到的位置下载到本地 我正在使用 struts 2 从服务器下载文件 我可以毫无例外地下载该文件 并且运行完美 但是下载的文件具有我在 struts xml 中指定的文件名 我希望它是正
  • `ifstream::readsome` 何时设置 `eofbit`?

    这段代码永远循环 include
  • 如何将 API 参数传递给 GCP 云构建触发器

    我有一大组 GCP Cloud Build 触发器 通过云调度程序调用 所有触发器都运行良好 现在 我想通过外部 API 调用来调用这些触发器 并向它们传递参数值和数量不同的动态参数 我能够通过运行 API 请求来启动触发器 但我发送的 A
  • Spring 3.0 使用 Jackson 消息转换器进行 JSON 响应

    我将我的消息转换器配置为杰克逊的消息转换器 class Foo int x int y 并在控制器中 ResponseBody public Foo method return new Foo 3 4 由此 我期望从服务器返回一个 JSON