【发布时间】:2021-12-01 17:02:34
【问题描述】:
我正在尝试实现从 Github 获得的这个 Spring 应用程序。我仍在学习过程中,所以这可能是一个基本问题。对于此更新用户方法,我需要在邮递员正文中传递哪些参数?我在邮递员正文中写了 { "id":1,"password":"1234"} 但它显示了 400 错误的语法错误。
public void updateUser(int id, String parameter, String update)
{
Session session=sessionFactory.openSession();
Transaction tx=session.beginTransaction();
//System.out.print(mail);
List<User_org> userList = userList();
for(User_org i: userList)
{
User_org u= i;
if(u.getId()==id)
{
if(parameter.equalsIgnoreCase("mail"))
{
u.setEmail(update);
session.update(u);
break;
}
if(parameter.equalsIgnoreCase("phone_no"))
{
u.setPhone_num(Integer.parseInt(update));
session.update(u);
break;
}
if(parameter.equalsIgnoreCase("password"))
{
u.setPassword(update);
session.update(u);
break;
}
}
}
session.flush();
tx.commit();
//return id;
}
在控制器中
public void updateUser(@RequestBody int id,String parameter, String updateToBe)
{
service.updateUser(id,parameter, updateToBe);
}
【问题讨论】:
-
您的请求正文定义为
int id,这似乎是错误的。将所有参数添加到ParametersDTO之类的内容中,并将 updateUser 签名更改为updateUser(@RequestBody ParametersDTO parameteters) -
我从未使用过ParametersDTO。还有其他方法吗?不过感谢您的回复。
-
不,我不这么认为。看这里的例子:baeldung.com/spring-request-response-body
标签: java spring-boot postman