gpt4 book ai didi

java - 失败 : Required Request Body is missing: public springframework. http.ResponseEntity ...postController

转载 作者:行者123 更新时间:2023-11-30 12:02:17 25 4
gpt4 key购买 nike

我已经创建了基于 Web 的应用程序示例:Angular 前端和 Spring Boot 后端 mer客户) Angular 网址:http://localhost:4200/ Spring Boot 网址:http://localhost:9020/ (休息:http://localhost:9020/api/)

<h1>Angular Part </h1>

`export class Customer {
id: number;
firstname: number;
lastname: Number;
age: number;
active: boolean;}`

import { Customer } from './customer';
export class CustomerService {
private baseUrl = http://localhost:9020/api';

constructor(private http: HttpClient) { }

getCustomer(id: number): Observable<Object> {
return this.http.get(${this.baseUrl}+`/customers`+/${id});}

createCustomer(customer: Customer): Observable<Object> {
console.log("customer.lastname: "+customer.lastname);
console.log("customer.firstname: "+customer.firstname);
return this.http.post(${this.baseUrl} + `/create`, customer);
}
getCustomersList(): Observable<any> {
return this.http.get(${this.baseUrl}+`/customers`);
}
}


import { Component, OnInit } from '@angular/core';
import { Customer } from '../customer';
import { CustomerService } from '../customer.service';`

@Component({
selector: 'create-customer',
templateUrl: './create-customer.component.html',
styleUrls: ['./create-customer.component.css']
})

export class CreateCustomerComponent implements OnInit {
customer: Customer = new Customer();
submitted = false;
constructor(private customerService: CustomerService) { }
ngOnInit() {
}

newCustomer(): void {
this.submitted = false;
this.customer = new Customer();
}

save() {
this.customerService.createCustomer(this.customer)
.subscribe(data => {console.log(data);
this.submitted = true;},error => console.log(error));
this.customer = new Customer();}

onSubmit() {
this.save();}}

Spring 启动

@Entity
@Table(name = "customer")
public class Customer implements Serializable {

private static final long serialVersionUID = -3009157732242241606L;

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;

@Column(name = "last_Name")
private String lastName;

@Column(name = "first_Name")
private String firstName;

@Column(name = "age")
private int age;

@Column(name = "active")
private boolean active = true;

public Customer() {
}

public Customer(String firstName, String lastName, int age, boolean active) {
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
this.active=active;
}

public long getId() {
return id;
}

public String getFirstName() {
return firstName;
}

public void setFirstName(String firstName) {
this.firstName = firstName;
}

public void setLastName(String lastName) {
this.lastName = lastName;
}

public String getLastName() {
return this.lastName;
}

public void setAge(int age) {
this.age = age;
}

public int getAge() {
return this.age;
}

public boolean isActive() {
return active;
}

public void setActive(boolean active) {
this.active = active;
}
}

.

@CrossOrigin(origins = "http://localhost:4200")
@RestController
@RequestMapping("/api")
public class CustomerController {

@Autowired
CustomerRepository repository;


@PostMapping(value = "/create")
public ResponseEntity<Customer> postCustomer(@RequestBody Customer customer) {
try {
Customer _customer = repository.save(new Customer(customer.getFirstName(),customer.getLastName(),customer.getAge(),customer.isActive()));
return new ResponseEntity<>(_customer, HttpStatus.CREATED);
} catch (Exception e) {
return new ResponseEntity<>(null, HttpStatus.EXPECTATION_FAILED);
}
}
}

.

CREATE TABLE customer(
id INT NOT NULL AUTO_INCREMENT,
firstname VARCHAR(20) NOT NULL,
lastname VARCHAR(20) NOT NULL,
PRIMARY KEY (id));

应用程序.properties:

  • server.port=9020
  • spring.datasource.url=jdbc:h2:file:./testdb
  • spring.datasource.username=H2 spring.datasource.password=密码
  • spring.jpa.hibernate.ddl-auto = 更新
  • spring.jpa.show-sql=true`

    有效载荷{"id":518,"lastName":null,"firstName":null,"age":99,"active":true}lastName 和 firstName 应该是字符串值,因为我输入字符串 enter image description here

    1 : /image/2s8jH.png

最佳答案

在Entity类中,该列名为“first_name”,但是当您创建表时,它被命名为“firstname”,下划线消失了。

关于java - 失败 : Required Request Body is missing: public springframework. http.ResponseEntity ...postController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58685251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com