【问题标题】:Spring @GetMapping returning empty arraySpring @GetMapping 返回空数组
【发布时间】:2020-08-13 08:50:10
【问题描述】:

在链接 http://localhost:8081/api/data/mydatas/admin 上使用 GET 和邮递员时

我得到一个空数组。我也试过添加 { "username": "admin" } 但它仍然作为空数组返回。

这是我的 java 服务中的代码:

@GetMapping("/mydatas/{username}")
    public List<Data> findByUsername(String username) {

        Query q = em.createQuery("select data from Data data where data.username = :username");
        q.setParameter("username", username);
        List<Data> mydatas = q.getResultList();
        return mydatas;
        
        }

但是,如果我添加 username = "admin";如下。它将返回包含完整数据的数组。

    @GetMapping("/mydatas/{username}")
    public List<Data> findByUsername(String username) {

        username = "admin";

        Query q = em.createQuery("select data from Data data where data.username = :username");
        q.setParameter("username", username);
        List<Data> mydatas = q.getResultList();
        return mydatas;
        
        }

我做错了什么? Ps 我是一个新手,还在为基础知识而苦苦挣扎。

【问题讨论】:

  • 尝试将@PathVariable 添加到您的参数用户名。

标签: java spring rest get


【解决方案1】:

像这样在参数前添加@PathVariable

@PathVariable String username

通过这个注解,你告诉 Spring 从 URL 路径中获取用户名

【讨论】:

    【解决方案2】:

    你需要使用@PathVariable,

    public List<Data> findByUsername(@PathVariable("username") String username)
    

    【讨论】:

      【解决方案3】:

      @PathVariable 注释应该在语音标记“”中作为 findByUsername 的参数传入“字符串用户名”之前

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-10-18
        • 2017-10-20
        • 1970-01-01
        • 1970-01-01
        • 2017-07-12
        • 1970-01-01
        • 2021-04-22
        • 2020-05-07
        相关资源
        最近更新 更多