Порядок рендеринга компонента силы в jsf - PullRequest
1 голос
/ 27 октября 2011

У меня есть приложение (IBM) jsf 1.2, в котором я пытаюсь показать ошибки в верхней части страницы, используя управляемый компонент лица, моя проблема заключается в том, что если в одном из компонентных геттеров возникает ошибка, и я записываю еесталкивается с управляемым бином (bean-компонентом ошибки), errorbean не отображается должным образом, и причина в том, что jsf вызывает получатель bean-компонента ошибки перед другим компонентом, который записывает в bean-компонент ошибки.JSF, чтобы заново отрисовать всю страницу или указать, какие из них должны быть обработаны.

Спасибо

1 Ответ

2 голосов
/ 27 октября 2011

Вы не должны выполнять какую-либо бизнес-работу в методе получения, а в конструкторе (post) компонента.

* 1003 Е.Г. *

public class Bean {

    private List<Entity> entities;

    @EJB
    private EntityService entityService;

    @PostConstruct
    public void init() {
        try {
            entities = entityService.list();
        } catch (Exception e) {
            String message = String format("Failed to retrieve entities: %s", e.getMessage());
            FacesMessage facesMessage = new FacesMessage(FacesMessage.SEVERITY_ERROR, message, null);
            FacesContext.getCurrentInstance().addMessage(null, facesMessage);
            e.printStackTrace();
        }
    }

    public List<Entity> getEntities() {
        return entities;
    }

}

Это также дает преимущество, заключающееся в том, что деловая работа не вызывается без необходимости несколько раз.

...