Wenn derIn 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 Paketjavax.validation
verwenden.<code class="java">import javax.validation.constraints.NotNull; public class MyEntity { @NotNull private String name; // Other fields }</code>Nach dem Login kopieren
@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.Wie geht @RequestBody mit Nullparametern um?
@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.
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 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.
Optional
wrapper class from the java.util
package.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()
.
BadRequestException
@DefaultValue
aus dem Paket javax.validation
.description
Wenn der Parameter in der Anfrage null ist, wird er in der Entitätsklasse auf „unbekannt“ gesetzt.🎜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.🎜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!