Прежде всего, все сделано в JSF 1.2.Короче говоря, у меня есть этот код:
public class MobileConfigurationToolSessionListener implements HttpSessionListener {
@Override
public void sessionCreated(HttpSessionEvent event) {
ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
externalContext.getSessionMap().put("myBean", new MyBean());
}
...
}
Доступ к бобу осуществляется из контекста JSF как к обычному сессионному бину JSF.
<h:outputText value="#{myBean.textMsg}"/>
В результате получается почти бесконечный цикл, который в конечном итогезаканчивается из-за:
011-04-06 15:47:42,435 WARN [http-80-1] org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase PanelGrid GeneralConfigForm:j_id_jsp_1651416019_7:0:GeneralDetailPanel has not enough children. Child count should be a multiple of the columns attribute.
2011-04-06 15:47:42,825 IDT] E 0000000c (org.apache.catalina.connector.CoyoteAdapter#service) An exception or error occurred in the container during the request processing
ava.lang.ArrayIndexOutOfBoundsException
То, чего я пытаюсь достичь, - это создать объект bean самостоятельно (в соответствии с параметрами URL или куки-файлами) в слушателе сеанса и «внедрить» новый компонент вСессия JSF.
Что я делаю не так?
Спасибо!
РЕДАКТИРОВАТЬ - я подумал, что другим решением может быть создание экземпляра myBean каким-либо образомJSF, а затем запустить методы для достижения той же идеи.Я помню статью @BalusC о том, как заставить JSF создавать экземпляр компонента из кода, но я не смог его найти.(Я думаю, @BalusC ответит мне на это, так что спасибо заранее :-))