요청에 숫자 변수가 유효한지 확인하려는 중입니다.이 필드는 null이 아니며 숫자 여야합니다. null 및 변환 오류에 대해 다른 오류가보고 싶습니다.주석 기반 요청 유효성 검사
내가 org.springframework.format.annotation.NumberFormat이가 왜 @NumberFormat이 기본 메시지 속성이 없습니다하지 않는 사용하려고했다
? 이것이 놓친 이유가 있습니까? 이제 메시지 리소스 번들을 사용하지 않아서 사용자 정의해야합니다.
public class AddToJobsShortListWSRequest implements Serializable {
@NumberFormat(style = NumberFormat.Style.NUMBER)
@NotNull(message="ASL01")
private Long userDetailId;
컨트롤러
public ResponseEntity<String> handlePostRequest(String xmlRequest, String... externalIds) {
ResponseEntity<String> response = null;
Set<Enum> enums = new HashSet<Enum>();
AddToJobsShortListWSRequest addToJobsShortListWSRequest = serializationDeserializationSupport.fromString(xmlRequest, AddToJobsShortListWSRequest.class);
if(!jsonRequestValidator.validate(AddToJobsShortListWSError.class, enums, addToJobsShortListWSRequest))
{
response = getBadRequestErrorResponseEntity(enums);
}
else{
.....
}
검사기
private void validate(@SuppressWarnings("rawtypes") Class enumClass, Object object, @SuppressWarnings("rawtypes") Set<Enum> enums) {
BindException errors = new BindException(object, "object");
validator.validate(object, errors);
@SuppressWarnings({"rawtypes"})
List fieldErrors = errors.getFieldErrors();
for (int i = 0; i < fieldErrors.size(); i++) {
if (fieldErrors.get(i) instanceof FieldError) {
String m = ((FieldError) fieldErrors.get(i)).getDefaultMessage();
enums.add(Enum.valueOf(enumClass, m));
}
}
}
다른 주석 기반의 유효성 검사가 여기에 적용 할 수 있습니까? 또한 유효성 검사 순서는 무엇입니까? NumberFormat, NotNull? 사전 :
컨트롤러 코드 및 오류 메시지를 게시 할 수 있습니까? –
은 http://stackoverflow.com/questions/149506/annotation-based-spring-bean-validation의 중복 질문 일 수 있습니다. – kandarp