У меня есть менеджер страницы.все пользователи будут отображаться в файле данных.
для редактирования пользователя, я поставил одно имя ссылки - редактировать.поэтому, когда я нажимаю на 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 ().