hibernate.validator.fail_fast序列

我的问题是我一次又一次收到验证错误,但没有按顺序进行。因此,任何伙伴都可以根据用户需要告诉我如何显示错误。

回答:

因此,我希望这是您想要的,或者至少将您推向正确的方向:

在我的控制器中,我有以下方法:

@RequestMapping(value = "/test/createEntry", method = RequestMethod.POST)

@ResponseBody

public void doAndValidateSomething(@RequestBody @Valid ValidationFormModel,

HttpServletResponse response) {

try {

testService.doSomething(model);

} catch (NormalException e) {

log.error(String.format("Error doing something! Values -> name: %s, address: %s",

model.getName(), model.getAddress(), e);

response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);

}

}

这是我的异常处理程序(也用于控制器)。请注意e.getBindingResult.getAllErrors()此处的行,它为您提供了所有错误的列表。就我而言,我决定只通过使用第一个错误iterator.next(),但这只是我想要的,请随意使用getAllErrors()

@ExceptionHandler(MethodArgumentNotValidException.class)

public void validationException(MethodArgumentNotValidException e, HttpServletResponse response) throws IOException {

response.getWriter().append(e.getBindingResult().getAllErrors().iterator().next().getDefaultMessage());

log.error("Validation failed!", e);

response.setStatus(HttpServletResponse.SC_BAD_REQUEST);

}

我的模型看起来像这样:

import org.hibernate.validator.constraints.Length;

import org.hibernate.validator.constraints.NotEmpty;

import javax.validation.constraints.Pattern;

public class ValidationFormModel {

@Length(max=50,min=2, message= "...")

@NotEmpty(message = "....")

private String name;

@Length(max=250,min=1, message= "...")

private String address;

//constructor, getters and setters...

}

在客户端,我使用以下jquery /

json通过post发送我的数据并显示实际错误。在错误处理程序中,您可以根据需要更改逻辑(我假设您想直接在表单输入字段或其他地方显示每个错误):

var approveNewSend = function () {

var newEntry = JSON.stringify({

name: $('#nameInput').val(),

});

$.ajax({

url: "${pageContext.request.contextPath}/test/createEntry",

type: "POST",

data: newEntry,

contentType: "application/json; charset=utf-8",

dataType: "json"

})

.success(function () {

console.log('yay!');

})

.error(function (data) {

$("#nerrorMessage").html("Error validating: " + data.responseText);

});

};

希望这可以帮助!随意问是否不清楚。

以上是 hibernate.validator.fail_fast序列 的全部内容, 来源链接: utcz.com/qa/404919.html

回到顶部