Я работал над несколькими проектами Spring MVC, в которых валидацию можно было сделать очень просто, например:
CONTROLLER
@RequestMapping(value = {"/newHeightUnit"}, method = RequestMethod.POST)
public String saveHeightUnit(@Valid HeightUnit heightUnit, BindingResult result, ModelMap model)
{
boolean hasCustomErrors = validate(result, heightUnit);
if ((hasCustomErrors) || (result.hasErrors()))
{
setPermissions(model);
return "heightUnitDataAccess";
}
heightUnitService.save(heightUnit);
session.setAttribute("successMessage", "Successfully added height unit \"" + heightUnit.getName() + "\"!");
return "redirect:/heightUnits/list";
}
private boolean validate(BindingResult result, HeightUnit heightUnit)
{
boolean hasCustomErrors = false;
if (heightUnitService.nameExists(heightUnit))
{
FieldError error = new FieldError("heightUnit", "name", heightUnit.getName(), false, null, null,
heightUnit.getName() + " already exists!");
result.addError(error);
hasCustomErrors = true;
}
return hasCustomErrors;
}
Это будет проверять сущность по любой аннотации проверки (@NotNull, @Size, @Digits и т. Д.).
Как этого можно добиться в JavaFX?У меня есть 9 сущностей с аннотациями валидации, как я делал в своих проектах MVC.Я использую Spring с тем, что вы могли бы назвать структурой view / service / dao.Я вообще не использую FXML, все компоненты моего пользовательского интерфейса генерируются на чистой Java, и я намерен оставить его таким.
Как я могу использовать аннотации валидации для моих сущностей в подходе, аналогичном Spring MVC?
Пояснения
Просто для справки, вот как мои сущности в настоящее время сохраняются.В настоящее время нет никакой проверки входных данных пользователя, когда они добавляются, но все работает отлично.Все мои сущности аннотированы и готовы к работе, и я просто хочу узнать, как интегрировать доброе старое @Valid
в микс:
@Override
public void saveEntity()
{
TextField nameField = (TextField)formFields.get(0);
try
{
Category newCategory = new Category(null, nameField.getText(), new Date(), null);
categoryService.save(newCategory);
}
catch (Exception ex)
{
logger.error("Error adding category : " + ex.getMessage());
}
}
Спасибо!