当前位置: 首页 > 知识库问答 >
问题:

@路径变量到类DTO

闻飞跃
2023-03-14

有没有可能不初始化类的所有字段,而只是使直类路径变量?

我知道我可以为此使用POST请求,但在这种情况下,我需要GET请求。

我想要这个@GetMapping(“/get/{classDTO}”) public String getMethod(@PathVariable classDTO classDTO)

而不是这个@GetMapping(“/get”) public String getMethod(@PathVariable String id, @PathVariable String random, @PathVariable String variable, @PathVariable String hello)

共有1个答案

谭刚毅
2023-03-14

直接在URI中传递多个值(如对象)非常容易出错。然而,有这样做的可能性。即使我不建议在现实生活中使用它。此外,请确保您没有传递任何敏感数据。

让我们假设您有一个类“书”:

public class Book {

    private String name;
    private String author;
    private int pages;

    public Book() {
    }
    // getters and setters are ommited for briefty, make sure you have them.
}

您的控制器应该是这样的:

@RestController
public class LibraryController {

    @GetMapping("/library")
    public Book getBook(@RequestParam String book) throws JsonProcessingException {
        return new ObjectMapper().readValue(book, Book.class);
    }
}

发生的事情是,我们正在手动尝试将传递的字符串映射到预期的对象。

我们的get请求如下:

http://localhost:8080/library?book={"name": "title", "author": "someone", "pages": 400}

额外资源:

在互联网上搜索答案时,我发现了两篇你可能感兴趣的文章。

如何使用地图或列表发出GET请求的示例

如何在GET请求中传递对象的示例

 类似资料:
  • 我想使用一个Eclipse类路径变量来解析我的类路径中的库的附加源代码JAR文件。这是我当前的“。 当我现在为“spring-ws-1.5.8-all.JAR”添加源JAR文件时,.classpath文件的内容是: 如您所见,Eclipse将“sourcepath”属性添加到带有绝对路径的“classpathentry”元素中。 现在我的想法是用类路径变量“SOURCE_path”替换绝对路径,该

  • 我的java bin文件夹包含java.exe @大卫华莱士 Microsoft Windows[版本6.3.9600](c)2013 Microsoft Corporation。保留所有权利。 C:\用户\Andy\AppData\漫游\Microsoft\Windows\开始菜单\Programs\Startup>

  • 我对spring boot很陌生,想做些新的事情。目前我有3个pojo类,它在user类中进行了扩展。我试图在所有setter id方法类中分配may@PathVariable partnerid的值,如下所示。我的问题是,spring boot是否提供了任何@annotation,可以将我的变量触发到我的Partner类中。我试图通过在setter方法中添加合作伙伴id来更新我的用户请求。 Js

  • 经过在internet上的搜索,我知道了在交互式/非交互式-登录/非登录shell组合的情况下应该在哪里更改PATH变量的值。 从另一个帖子中找到的 我有“/bin/sh”作为缺省登录shell,只有/etc/profile文件用于导出系统中所有需要的环境变量。在非交互式登录shell的情况下,/etc/profile也不会被引用,尽管上面的link说它会被引用。但当我执行时, 我可以看到PATH

  • 问题内容: 我在apache2的custom.conf文件中设置了以下代码: 但是,它不起作用。当我打电话时: 我得到: 有人可以帮忙吗?我在Mac上使用Macports作为开发环境。谢谢! 问题答案: 对于您尝试从Apache内部设置PATH的情况,我感到非常奇怪。相反,您应该为系统设置PATH。在Mac OS X中,有几种方法可以做到这一点: 特定 于用户对于单个用户,您可以编辑〜/ .pro

  • 我最近尝试导入一个现有的Gradle项目,使用启动窗口中的“Open project”选项和现有的build.Gradle文件自动设置该项目。 就在我这样做之后,IntelliJ中出现了一条错误消息,说: 看起来像这样,IntelliJ抱怨我没有将play框架添加到我的PATH变量中。尽管外壳的输出告诉了某事物。其他: 我还编写了一个简单的类来显示IntelliJ使用的PATH变量: 当我运行这个