Определение запроса загрузки страницы на основе вызова конструктора в JSF - PullRequest
0 голосов
/ 14 марта 2012

У меня есть следующий сценарий в моем проекте, основанный на JSF и RF3.3

1. Каждая операция в приложении отслеживается.То есть, если пользователь открывает определенную страницу, информация о странице сохраняется против имени пользователя.

Теперь страницы могут быть createSomething или ModifySomething ... Эти обе страницы связаны с одним и тем же компонентом поддержки, посколькуони принадлежат одному модулю.

Поэтому, когда я отслеживаю информацию пользователя на основе вызова конструктора, я не могу сохранить информацию о том, был ли загружен компонент для страницы createSomething или страницы ModifySomething.

Я хочучтобы получить имя страницы или что-то уникальное, с помощью которого я могу определить, загружен ли bean-компонент для CreateSomething или ModifySomething.

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

Для любого действия, выполненного на странице, я могу легко записать его ..

Я не могу использовать Javascript ...

Пожалуйста, ведите меня.

1 Ответ

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

Вы можете получить идентификатор представления JSF по UIViewRoot#getViewId() следующим образом:

String viewId = FacesContext.getCurrentInstance().getViewRoot().getViewId();
// ...

Он вернет идентификатор представления, который является уникальным путем к корню представления, например/create.xhtml или /edit.xhtml.

Альтернатива - позволить странице вызывать специфический для страницы метод слушателя <f:event type="preRenderView">.Например, только на странице создания:

<f:event type="preRenderView" listener="#{bean.prepareCreate}" />

с

public void prepareCreate() {
    if (!FacesContext.getCurrentInstance().isPostback()) {
        entity = new Entity();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...