Rumah > masalah biasa > Beberapa parameter dalam kelas entiti yang diterima menggunakan anotasi @RequestBody dalam Spring adalah batal

Beberapa parameter dalam kelas entiti yang diterima menggunakan anotasi @RequestBody dalam Spring adalah batal

DDD
Lepaskan: 2024-08-13 16:14:20
asal
1246 orang telah melayarinya

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

Beberapa parameter dalam kelas entiti yang diterima menggunakan anotasi @RequestBody dalam Spring adalah batal

Bagaimana untuk Memastikan Parameter Bukan Null dalam Kelas Entiti dengan @RequestBody pada Musim Bunga?

Untuk memastikan semua parameter dalam kelas entiti yang diberi anotasi dengan @RequestBody bukan nol, anda boleh menggunakan anotasi @NotNull daripada pakej javax.validation.@NotNull annotation from the javax.validation package.

<code class="java">import javax.validation.constraints.NotNull;

public class MyEntity {
    @NotNull
    private String name;
    // Other fields
}</code>
Salin selepas log masuk

When the @NotNull annotation is applied to a field, Spring Validation will automatically check if the field is non-null. If it is null, a ConstraintViolationException will be thrown.

How Does @RequestBody Handle Null Parameters?

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.

How to Handle Null Parameters in Part of an Entity Class with @RequestBody?

You have several options to handle the situation when some parameters in an entity class with @RequestBody are null:

  1. Use default values: You can provide default values for null fields by using the @DefaultValue annotation from the javax.validation package.
<code class="java">import javax.validation.constraints.DefaultValue;

public class MyEntity {
    @RequestBody
    private String name;
    @DefaultValue("unknown")
    private String description;
    // Other fields
}</code>
Salin selepas log masuk

In this case, if the description parameter is null in the request, it will be set to "unknown" in the entity class.

  1. Use optional fields: You can declare optional fields in the entity class using the Optional wrapper class from the java.util package.
<code class="java">import java.util.Optional;

public class MyEntity {
    @RequestBody
    private String name;
    private Optional<String> description;
    // Other fields
}</code>
Salin selepas log masuk

In this case, if the description parameter is null in the request, the description field in the entity class will be set to Optional.empty().

  1. Custom handling: You can also write custom code in the controller method to handle null parameters. For example, you could throw a BadRequestExceptionrrreee
  2. Apabila @NotNull anotasi digunakan pada medan, Spring Validation akan menyemak secara automatik sama ada medan itu bukan nol. Jika ia adalah batal, ConstraintViolationException akan dilemparkan.
🎜Bagaimanakah @RequestBody Mengendalikan Parameter Null?🎜🎜Secara lalai, @RequestBody akan mengikat nilai nol kepada medan bukan primitif dalam kelas entiti . Sebagai contoh, jika anda mempunyai medan yang diberi anotasi dengan @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:🎜
  1. Gunakan nilai lalai: Anda boleh memberikan nilai lalai untuk medan null dengan menggunakan anotasi @DefaultValue daripada pakej javax.validation.🎜🎜rrreee🎜Dalam kes ini, jika penerangan parameter adalah batal dalam permintaan, ia akan ditetapkan kepada "tidak diketahui" dalam kelas entiti.🎜
    1. Gunakan medan pilihan: Anda boleh mengisytiharkan medan pilihan dalam kelas entiti menggunakan kelas pembalut Pilihan daripada pakej java.util.🎜🎜rrreee🎜Dalam kes ini, jika parameter penerangan adalah batal dalam permintaan, medan penerangan dalam kelas entiti akan ditetapkan kepada Optional.empty().🎜
      1. Custom pengendalian: Anda juga boleh menulis kod tersuai dalam kaedah pengawal untuk mengendalikan parameter nol. Contohnya, anda boleh membuang 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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan