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

Spring Boot将null属性映射到来自angular2的JSON post请求的POJO

漆雕伟志
2023-03-14

在对这个话题做了大量的研究后,我决定在这里问这个问题。我将所有null属性都添加到pojo/model,它应该从我从Angular 2前端发布的JSON中获取值。下面是rest控制器方法:

@RequestMapping(value = "/employees/update",  method = RequestMethod.POST, consumes = "application/json")
    public String allEmployees( @RequestBody Employee emp){
        return "";
    } 

以下是POJO/Model/Hibernate实体:

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(nullable = false, updatable = false)
private Long id;

private String firstname;
private String lastname;
private String department;

public Employee(){}

public Long getId() {
    return id;
}
public void setId(Long id) {
    this.id = id;
}
public String getFirstname() {
    return firstname;
}
public void setFirstname(String firstname) {
    this.firstname = firstname;
}
public String getLastname() {
    return lastname;
}
public void setLastname(String lastname) {
    this.lastname = lastname;
}
public String getDepartment() {
    return department;
}
public void setDepartment(String department) {
    this.department = department;
}

以下是Angular 2的服务方法:

updateEmployee(emp:Employee){
  let url: string = "http://localhost:8080/api/employees/update";
  let headers = new Headers();
  headers.append('Content-Type', 'application/json');
  return  this.http.post(url, {emp}, {headers: headers, withCredentials: true }).map(res => res.json());
}

和Angular 2的员工界面:

export interface Employee{
  id: number;
  firstname: string;
  lastname: string;
  department: string;
}

我做错了什么?我搜索过类似的问题,但没有一个适用于我的情况。谢谢!

共有1个答案

公冶同
2023-03-14

尝试用@ResponseBody注释该方法

它将变成:

@ResponseBody
@RequestMapping(value = "/employees/update",  method = RequestMethod.POST, consumes = "application/json")
    public String allEmployees( @RequestBody Employee emp){
        return "";
    } 
 类似资料:
  • 问题内容: 我有这段代码: 据我所知,它应该接受一个test.json?tipo = H请求并返回Variavel []的JSON表示,但是当我发出这样的请求时,我得到了: HTTP状态406- 类型状态报告 信息 description根据此请求标识的资源只能根据请求的“ accept”标头()生成特性不可接受的响应() 通过使用以下功能,我可以获得预期的json: 我做错了什么? 问题答案:

  • 我从一个xml模式生成java类,对于一个复杂类型,我希望jaxb使用一个现有的类,我有一个外部绑定定制文件。自定义类被解组为正确的,除了该类型的单个属性,该属性从未在java类中填充。 下面是类型/类问题的演示。 模式中定义的内容是: 读取匹配xml文件的代码段是: 在这个xml中阅读: 使用JAXB生成的Thing类(不使用自定义xjb),输出符合预期: 使用只有getters的自定义Thin

  • 类似这样的东西,我不需要返回任何东西:

  • Web 容器需要本章描述的映射技术去映射客户端请求到 Servlet(该规范2.5以前的版本,使用这些映射技术是作为一个建议而不是要求,允许servlet 容器各有其不同的策略用于映射客户端请求到 servlet)。

  • 问题内容: 我有一个用于向用户提供数据的组件。例如。该组件可以调度某些方法(例如,按操作)。我目前正在使用一种方法来映射到。派遣后有办法吗? 问题答案: 据我了解,您要做的就是将组件的props转换为组件自己的状态。您总是可以像这样在组件的生命周期方法中将组件的props更改为组件的状态。 每当有新的道具进入组件时,方法总是由react执行,因此这是根据道具更新组件状态的正确位置。 更新: The

  • 我需要将源类中的字段值映射到字段属性。我可以使用Mapstruct使用@mapper注释的'expression'参数来完成 有没有其他方法可以不使用“表达式”来进行映射?