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
DDDOriginal
2024-08-13 16:14:201204Durchsuche

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 @NotNull aus dem Paket javax.validation verwenden.

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

public class MyEntity {
    @NotNull
    private String name;
    // Other fields
}</code>
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 ConstraintViolationException ausgelö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 @RequestBody annotiert 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:@NotNull 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>

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 java.util.Optional;

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

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.
rrreee

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 BadRequestException
    1. Standardwerte verwenden: Sie können Folgendes angeben Standardwerte für Nullfelder mithilfe der Annotation @DefaultValue aus dem Paket javax.validation.
    rrreee🎜In diesem Fall, wenn die description Wenn 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-Klasse Optional aus dem Paket java.util.🎜🎜rrreee🎜In diesem Fall, wenn der Parameter description null ist Bei der Anfrage wird das Feld description in der Entitätsklasse auf Optional.empty() gesetzt.🎜
      1. Custom Handhabung: Sie können in der Controller-Methode auch benutzerdefinierten Code schreiben, um Nullparameter zu verarbeiten. Beispielsweise könnten Sie eine BadRequestException auslö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