Как правильно вернуть Response API Response для проверки бина? - PullRequest
0 голосов
/ 18 декабря 2018

Я делаю первые шаги на Java MVC 1.0 (реализация Ozark) на основе Jax-RS.Никогда раньше не имел удовольствия работать над MVC, обычно JSF - мой любимый способ разработки веб-приложений.Сказал, что, как плохо объясняет заголовок, я столкнулся с проблемой, в основном из-за недостатка знаний о принципах API ответа.

Это фрагмент моего кода:

@POST
@ValidateOnExecution(type = ExecutableType.NONE)
public Response addSize(@Valid @BeanParam CodeDescriptionModel tagliaModel) throws IOException {
    if (bindingResult.isFailed()) {
        for (ParamError error : br.getAllErrors()) {
            models.put(error.getParamName()+"_error", error.getMessage());
            logger.warn("Validation error on field [{}] - {}",error.getParamName(), error.getMessage());
        }
        **WHAT SHOULD I RETURN HERE?!?**
    }else{
        SizeEntity newSize = new SizeEntity();
        newSize.setCode(sizeModel.getCode());
        newSize.setDescription(sizeModel.getDescription());
        sizeService.saveSize(newSize);
    }
    return Response.seeOther(URI.create("/dashboard/animals/size")).build();

Как видите, этот метод является просто методом POST, который позволяет пользователю добавлять новый размер.Блок IF не имеет эффекта, если проверка в порядке, поэтому он может продолжить и правильно сохранить объект.Response.seeOther (...) делает свою работу очень хорошо.Реальный вопрос заключается в следующем: что я должен установить в ответе, чтобы вернуться на ту же страницу и показать сообщения проверки?Если я возвращаю Response.seeOther (...) по тому же пути, он корректно перенаправляет меня, но ошибки проверки, очевидно, не отображаются.С другой стороны, если я изменяю тип возвращаемого значения с Response на Viewable, то я могу видеть все ошибки проверки, НО, если объект создан правильно, то возвращение Viewable не вызывает обновления страницы, оставляя меняс невозможностью обновить мою таблицу в представлении, пока я не нажму вручную кнопку F5.

Я совершенно растерялся, любая помощь будет очень признательна!

PS Пожалуйста, спросите все, что выМне нужно лучше понять проблему, мои знания английского настолько слабые, что это может вызвать двусмысленность или недопонимание.

Спасибо, ребята!

...