在链接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;
}
但是,如果我添加用户名=“ 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;
}
我在做什么错?附言:我是一个仍在苦苦学习基础知识的新手。
答案 0 :(得分:3)
在参数之前添加@PathVariable
@PathVariable String username
使用此注释,您告诉Spring从URL路径中获取用户名
答案 1 :(得分:2)
您需要使用@PathVariable,
public List<Data> findByUsername(@PathVariable("username") String username)
答案 2 :(得分:0)
@PathVariable批注应以语音标记“”中的字段名称作为“字符串用户名”之前的findByUsername的参数传入