Heim>Artikel> Einige Parameter in der Entitätsklasse, die mithilfe der @RequestBody-Annotation in Spring empfangen wurden, sind null

Einige Parameter in der Entitätsklasse, die mithilfe der @RequestBody-Annotation in Spring empfangen wurden, sind null

DDD
DDD Original
2024-08-13 16:14:20 1053Durchsuche

In diesem Artikel wird erläutert, wie sichergestellt werden kann, dass alle Parameter in einer mit @RequestBody annotierten Entitätsklasse in Spring ungleich Null sind. Es erklärt das Standardverhalten von @RequestBody für Nullparameter und bietet mehrere Optionen zum Umgang mit Nullparametern Wenn eine mit @RequestBody annotierte Entitätsklasse ungleich Null ist, können Sie die Annotation@NotNullaus dem Paketjavax.validationverwenden.

import javax.validation.constraints.NotNull; public class MyEntity { @NotNull private String name; // Other fields }
Wenn der @NotNull-Annotation auf ein Feld angewendet wird, prüft Spring Validation automatisch, ob das Feld nicht null ist. Wenn es null ist, wird eine ConstraintViolationExceptionausgelöst.

Einige Parameter in der Entitätsklasse, die mithilfe der @RequestBody-Annotation in Spring empfangen wurden, sind nullWie geht @RequestBody mit Nullparametern um?

Standardmäßig bindet @RequestBody einen Nullwert an ein nicht-primitives Feld in der Entitätsklasse . Wenn Sie beispielsweise ein Feld haben, das mit@RequestBodyannotiert ist und der entsprechende Anforderungsparameter null ist, wird das Feld in der Entitätsklasse auf null gesetzt Entitätsklasse mit @RequestBody?

Sie haben mehrere Möglichkeiten, mit der Situation umzugehen, wenn einige Parameter in einer Entitätsklasse mit @RequestBody null sind:@NotNullannotation from thejavax.validationpackage.

import javax.validation.constraints.DefaultValue; public class MyEntity { @RequestBody private String name; @DefaultValue("unknown") private String description; // Other fields }

When the@NotNullannotation is applied to a field, Spring Validation will automatically check if the field is non-null. If it is null, aConstraintViolationExceptionwill 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@RequestBodyand 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@DefaultValueannotation from thejavax.validationpackage.
import java.util.Optional; public class MyEntity { @RequestBody private String name; private Optional description; // Other fields }

In this case, if thedescriptionparameter 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 theOptionalwrapper class from thejava.utilpackage.
rrreee

In this case, if thedescriptionparameter is null in the request, thedescriptionfield in the entity class will be set toOptional.empty().

  1. Custom handling:You can also write custom code in the controller method to handle null parameters. For example, you could throw aBadRequestException
    1. Standardwerte verwenden:Sie können Folgendes angeben Standardwerte für Nullfelder mithilfe der Annotation@DefaultValueaus dem Paketjavax.validation.
    rrreeeIn diesem Fall, wenn diedescriptionWenn der Parameter in der Anfrage null ist, wird er in der Entitätsklasse auf „unbekannt“ gesetzt.
    1. Optionale Felder verwenden:Sie können optionale Felder im deklarieren Entitätsklasse unter Verwendung der Wrapper-KlasseOptionalaus dem Paketjava.util.rrreeeIn diesem Fall, wenn der Parameterdescriptionnull ist Bei der Anfrage wird das Felddescriptionin der Entitätsklasse aufOptional.empty()gesetzt.
      1. Custom Handhabung:Sie können in der Controller-Methode auch benutzerdefinierten Code schreiben, um Nullparameter zu verarbeiten. Beispielsweise könnten Sie eineBadRequestExceptionauslösen, wenn einer der erforderlichen Parameter null ist.

Das obige ist der detaillierte Inhalt vonEinige Parameter in der Entitätsklasse, die mithilfe der @RequestBody-Annotation in Spring empfangen wurden, sind null. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn