Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > вызов метода в бинах в JSF


Автор: oson 12.2.2007, 14:04
Господа!
Например надо вызвать со странички JSF метод в различных бинах в зависимости от доп условий.
То есть есть некий NavigationBean который лежит в request scope и на страничке вызывается
Код

<h:commandLink  action="#{navigationBean.replaceProcess}" >
 <f:param value="#{process.id}" name="processId"/>
</h:commandLink>

а в самом бине он проверяет id и вызывает метод в каком либо одном из двух бинов, которые лежат тоже в request scope : Bean1 и Bean2.
Код

  public void replaceProcess()
    {
        Long processId = FacesHelper.getParameterAsLong("processId");
        как здесь получить доступ к одному из бинов или проиницилизировать его и вызвать соотв. метод?
    }

Автор: Maksym 12.2.2007, 14:47
Например так для bean из request scope
Код

((HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest()).getAttribute("beanName")

Для session scope анналогично.
И кастиш классом своего бина.

Автор: oson 12.2.2007, 16:08
Мне надо чтоб он в каждом конкретном случае открыл другую страничку.
То есть если я из сессии достану так бин  - я ж не смогу вызвать у него явно метод, который вызывается со странички 
как
 
Код

 <h:commandLink action= "#{полученный_бин.метод}">

?

Автор: Maksym 12.2.2007, 17:17
oson
Почему не сможеш? не понимаю.. ты получил нужный тебе экземпляр объекта нужного класса.. в чем проблема вызова метода..?
Может быть я не доконца уяснил твою задачу.. тогда напиши, плз, четче.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)