не отключается ошибка проверки при использовании preRenderView - PullRequest
0 голосов
/ 23 марта 2012

У меня есть менеджер страницы.все пользователи будут отображаться в файле данных.

для редактирования пользователя, я поставил одно имя ссылки - редактировать.поэтому, когда я нажимаю на edit, он берет идентификатор пользователя

и переходит на страницу редактирования.на странице редактирования я использовал

<f:event type="preRenderView" listener="#{editUserBean.init}"/>.

, поэтому метод init () получит параметр запроса.

Моя проблема в том, что я поставил валидацию на странице editUser.когда я отправляю форму без какого-либо значения

, тогда это сообщение об ошибке не отображается.и он делает работу без какого-либо

значения.и на странице есть две формы.одна форма имеет тег preRenderView, а другая форма имеет

редактируемые данные с проверкой.

`public void init () выдает исключение {

    Object o1=FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("id");


    if(o1==null ||(editNews=Facade.othfac().getTVecNewsFindAllValidTill(o1.toString(),Integer.valueOf(o2.toString())))==null)
    {
        FacesContext.getCurrentInstance().getExternalContext().redirect("/HeWebEV/admin/ManageUsrs.jsf");
    }
    else
    {
        setEditNews(Facade.othfac().getTVecNewsFindAllValidTill(o1.toString(),Integer.valueOf(o2.toString())));
    }

}

public void updateNewsAction() throws Exception
{
    log.info("in UpdateUserAction__");
    save to database.

    FacesContext.getCurrentInstance().getExternalContext().redirect("/HeWebEV/admin/ManageUser.jsf");
}`  

это не вызывает действие обновленияно он вызывает init () без параметра, поэтому

перенаправляет на другую страницу.

Работает, когда я удаляю тег preRenderView и использую Constructor вместо init ().

1 Ответ

0 голосов
/ 23 марта 2012

Компонент должен иметь значение @ViewScoped, а метод init() должен выполнять свою работу только во время первоначального запроса, но не при обратной передаче.

public void init() {
    if (!FacesContext.getCurrentInstance().isPostback()) {
        // Do the job here.
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...