Spring - Bean Validation - Object Error

1125 ワード

1.Bean Validation-objectError処理


@ScriptAssert()を使用してObjectErrorを処理できます.
@Getter
@NoArgsConstructor
@ScriptAssert(lang = "javascript", script = "_this.price * _this.quantity >= 10000",
		message = "총합이 10000원 넘게 입력해주세요")
public class Item {

    private Long id;

    @NotBlank
    private String itemName;

    @NotNull
    @Range(min= 1000, max= 1000000)
    private Integer price;

    @NotNull
    @Max(9999)
    private Integer quantity;
}
上記のコードに示すように、@Script Assert宣言を提供し、scriptで実装したい検証ロジックを作成します.

上記のように、検証に失敗すると、ObjectErrorメッセージが返されます.
ただし、実際の使用では多くの制限と複雑さが発生するため、以下のjavaコードを使用してobjecterrorを処理することをお勧めします.
if(item.getPrice() != null && item.getQuantity() != null) {
	int resultPrice = item.getPrice() * item.getQuantity();
    	if(resultPrice < 10000) {
    		bindingResult.reject("totalPriceMin", new Object[]{10000, resultPrice}, null);
    	}
}
出典:Spring MVC第2編:バックエンドWeb開発利用技術