Spring JSF и эти неправильно заполненные формы - PullRequest
0 голосов
/ 04 сентября 2011

Я думаю о хороших подходах к разработке веб-программного обеспечения.Spring отлично подходит для JDBC, но в нем также есть хорошая функция для автозаполнения неисправных форм, красивые бины для предварительного заполнения форм и т. Д.

Теперь я начал с JSF, и он кажется более правильным, чем Spring для выполнения MVC.Мне нравятся подходы xhtml, в том числе шаблоны, определение этих веб-процессов в файле face-config.xml и так далее.

Но нет четкого разделения интересов, потому что обе платформы могут работать с формами, и я уверен, что вам придется принять решение, если Faces или Spring создадут формы.Я склоняюсь к JSF, но мне не хватает этих изящных функций обработки ошибок и предварительного заполнения.

Может ли JSF делать эти вещи также?Я новичок в JSF, поэтому я не уверен, насколько он силен.

1 Ответ

2 голосов
/ 04 сентября 2011

но мне не хватает этих изящных функций обработки ошибок и предварительного заполнения.Может ли JSF делать эти вещи тоже?Я новичок в JSF, поэтому я не уверен, насколько он силен.

JSF имеет встроенную проверку, например, <h:inputText required="true">, <f:validateLongRange>, <f:validateRegex>, а также преобразование,например, <f:convertDateTime>, <f:convertNumber> и т. д. ( см. их все здесь ).JSF также поддерживает JSR 303 Bean Validation , который управляется аннотациями, такими как @NotNull, @Min, @Max, @Pattern и т. Д. На объектах модели.Все ошибки проверки / преобразования заканчиваются на <h:message>, привязанном к элементу ввода, или глобальном <h:messages>. В этом руководстве по JSF 2.0 подробно рассматривается валидация.

Что касается предварительного заполнения, просто установите нужную модель в конструкторе (post) компонента или <f:viewParam>, если какой-либо идентификатор должен быть получен как запроспараметр.В основном:

public class Bean {

    private Entity entity;

    @EJB
    private EntityService entityService;

    @PostConstruct
    public void init() {
        entity = entityService.find(someId);
    }

    // ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...