У меня есть класс POJO и его метод API. Я хочу проверить ввод данных в пользовательское поле, но, похоже, это не работает. Я использовал аннотацию @Size () в своем классе POJO, но она не работает. Ниже приведен фрагмент моей структуры logi c.
Класс POJO
@Entity
public class Address {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long addressId;
@NotNull
@Size(min=10, max=100, message="Please enter between {min}-{max} characters")
private String addressLine;
Метод класса API
@PostMapping(value="/add", produces = MediaType.APPLICATION_JSON_VALUE, consumes=MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody String addAddress( @RequestBody @Valid Address address, BindingResult result)
{
if(result.hasErrors()) {
return ErrorUtils.customErrors(result.getAllErrors());
} else {
return addressService.addAddress(address);
}
}
, и я создаю JSON запрос для addAddress (/ add) метода и выдает сообщение об ошибке в форме пользовательского интерфейса. Мой обработчик ответов JSON находится в валидаторе jquery, как показано ниже ..
function saveRequestedData(frm, data, type) {
$.ajax({
contentType:"application/json; charset=utf-8",
type:frm.attr("method"),
url:frm.attr("action"),
dataType:'json',
data:JSON.stringify(data),
success:function(data) {
if(data.status == "success") {
alert(data.message);
toastr.success(data.message, data.title, {
closeButton:true
});
fetchList(type);
}
else {
toastr.error(data.message, data.title, {
allowHtml:true,
closeButton:true
});
}
}
});
}
Кажется, работает только @NotNull, а не аннотация @Size и @Valid. В соответствии с примечаниями к выпуску Spring Boot , Начиная с версии 2.3.0. RELEASE Spring Boot Web и WebFlux больше не зависят от стартера проверки, поэтому я добавил Spring-boot-starter-validation в свой файл pom. xml вручную. Но вроде ничего не работает.