当前位置: 首页 > 面试题库 >

Spring 3.1或更高版本@RequestMapping消耗/产生

岳枫
2023-03-14
问题内容

关于消费和生产的部分,我有一个问题@RequestMapping。我有一个端点,我想同时接受JSON和XML,并在传递JSON时返回JSON,并在传递XML时返回XML。为了使这项工作有效,我需要做些特别的事情吗?

下面列出了示例代码。

@RequestMapping(value = "/something", method = PUT, 
                consumes = {APPLICATION_JSON_VALUE, APPLICATION_XML_VALUE}, 
                produces = {APPLICATION_JSON_VALUE, APPLICATION_XML_VALUE})
public SomeObject updateSomeObject(SomeObject acct) {
    return doStuff(acct);
}

这会按照我期望的方式工作吗?还是我需要两个端点updateSomeObjectXMLupdateSomeObjectJson处理这两种情况?

谢谢,迈克


问题答案:

Spring博客上的文章- 使用Spring MVC进行内容协商 -提供了有关内容协商如何与Spring
MVC一起使用的详细信息,简而言之,如果您希望同一个端点处理XML和JSON,并且映射正确,请从本文中进行总结:

  1. 使用路径扩展-您可以将json发送到/something.jsonxml/something.xml并在返回的途中期待同样的事情

  2. 使用Accept标题,使用application/json或值,application/xml并用于Content-Type指定提交的媒体类型。



 类似资料:
  • 我有一个Java pc应用程序,一旦加载相应的配置数据,CPU性能就会逐步提高。 基本有2个线程,一个主线程,一个副线程。在主线程中生成一个登录和一个数据加载,而在第二个线程中每10秒生成一次查询。如果会话启动但未加载数据,则第二个线程继续查询但性能最小。CPU消耗的增加是在加载数据后产生的,并且逐渐增加。 此外,如果再次加载数据,则消耗将降至最低,一旦加载,消耗将再次增加。 由于保密问题,我不能

  • 根据我的头衔。几个月来,我一直在愉快地使用Eclipse,但现在它出现了问题(我认为这是因为我在SDK中添加了API 19)。 无论如何,我删除了SDK和Eclipse,并重新安装了它们。它们位于C:\Program Files(x86)中名为development的文件夹中,与Java文件相同。 所以我加载了Eclipse并且没有错误,所以我想我会更新SDK:Android SDK Tools

  • 将和升级到和或更高版本时,我们遇到一个问题 java.lang.InternalError:无法在org.bouncycastle.jcajce.provider.drbg.drbg$urlseededsecurerandom$1上打开随机源。在org.bouncycastle.jcajce.provider.drbg.drbg$urlseededsecurerandom$1上运行(drbg.ja

  • (环境:Windows 7 Eclipse) 当我在Android SDK Manager中更新时,我已经选择了所有SDK、平台、示例等。重启Eclipse后,当我尝试访问Android SDK Manager时,我收到了这条消息:android sdk的位置尚未在首选项中设置! 当我试图在窗口中定位SDK时- 我试图更新最新的ADT。它告诉我:无法完成请求。有关详细信息,请参阅错误日志。Andr

  • 我想每个人都在Windows中看到了加载栏,在Windows vista,7和8中,我们这里有一些有趣的东西,你可以在任务栏上看到绿色的加载图标。如何创建与此工作的加载?我是新手,我创建了一个文本窗口,其中程序是打印空格与绿色背景,这看起来类似加载栏。我不知道如何创造更好的装载。。。

  • 此Android SDK需要Android Developer Toolkit 23.0.0或更高版本。当前版本为22.6.3.v201404151837-1123206。请将ADT更新到最新版本。 我的sdk版本精确地设置为以下目录。