Artikel ini membincangkan cara untuk memastikan bahawa semua parameter dalam kelas entiti yang dianotasi dengan @RequestBody adalah bukan nol dalam Spring. Ia menerangkan tingkah laku lalai @RequestBody untuk parameter null dan menyediakan beberapa pilihan untuk mengendalikan parameter null
Untuk memastikan semua parameter dalam kelas entiti yang diberi anotasi dengan @RequestBody bukan nol, anda boleh menggunakan anotasi@NotNull
daripada pakejjavax.validation
.@NotNull
annotation from thejavax.validation
package.
import javax.validation.constraints.NotNull; public class MyEntity { @NotNull private String name; // Other fields }
When the@NotNull
annotation is applied to a field, Spring Validation will automatically check if the field is non-null. If it is null, aConstraintViolationException
will be thrown.
By default, @RequestBody will bind a null value to a non-primitive field in the entity class. For example, if you have a field annotated with@RequestBody
and the corresponding request parameter is null, the field will be set to null in the entity class.
You have several options to handle the situation when some parameters in an entity class with @RequestBody are null:
@DefaultValue
annotation from thejavax.validation
package.import javax.validation.constraints.DefaultValue; public class MyEntity { @RequestBody private String name; @DefaultValue("unknown") private String description; // Other fields }
In this case, if thedescription
parameter is null in the request, it will be set to "unknown" in the entity class.
Optional
wrapper class from thejava.util
package.import java.util.Optional; public class MyEntity { @RequestBody private String name; private Optional description; // Other fields }
In this case, if thedescription
parameter is null in the request, thedescription
field in the entity class will be set toOptional.empty()
.
BadRequestException
rrreee@NotNull
anotasi digunakan pada medan, Spring Validation akan menyemak secara automatik sama ada medan itu bukan nol. Jika ia adalah batal,
ConstraintViolationException
akan dilemparkan.
@RequestBody
dan parameter permintaan yang sepadan adalah batal, medan tersebut akan ditetapkan kepada null dalam kelas entiti.Cara Mengendalikan Parameter Null dalam Sebahagian daripada Kelas Entiti dengan @RequestBody?Anda mempunyai beberapa pilihan untuk mengendalikan situasi apabila beberapa parameter dalam kelas entiti dengan @RequestBody adalah batal:
@DefaultValue
daripada pakejjavax.validation
.rrreeeDalam kes ini, jikapenerangan
parameter adalah batal dalam permintaan, ia akan ditetapkan kepada "tidak diketahui" dalam kelas entiti.
Pilihan
daripada pakejjava.util
.rrreeeDalam kes ini, jika parameterpenerangan
adalah batal dalam permintaan, medanpenerangan
dalam kelas entiti akan ditetapkan kepadaOptional.empty()
.
BadRequestException
jika mana-mana parameter yang diperlukan adalah batal.Atas ialah kandungan terperinci Beberapa parameter dalam kelas entiti yang diterima menggunakan anotasi @RequestBody dalam Spring adalah batal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!