[ http://issues.apache.org/jira/browse/BEEHIVE-827?page=comments#action_12314410 ]
Mike Arnold commented on BEEHIVE-827: ------------------------------------- I examined the comments in the PageFlowViewHandler class and determined that the issue I was having is because in my forward I was using navigateTo=Jpf.NavigateTo.currentPage. If, instead, I forward to a specific path, the onCreate method executes and I can retrieve the pageInput. @Jpf.Action(forwards = { @Jpf.Forward(name = "loginSuccess", path = "confirmLogin.faces"), @Jpf.Forward(name = "loginFailure", path="login.faces", actionOutputs = { @Jpf.ActionOutput(name="loginError", type = String.class, required = true) }) }) @Jpf.Action(forwards = { @Jpf.Forward(name = "loginSuccess", path = "confirmLogin.faces"), @Jpf.Forward(name = "loginFailure", navigateTo=Jpf.NavigateTo.currentPage, actionOutputs = { @Jpf.ActionOutput(name="loginError", type = String.class, required = true) }) }) I suspect that using navigateTo is the appropriate way of sending the user back to the page, but I can think of no other place to call getPageInput() and retrieve the output from the action. I think, based on your comments, that the way I'm doing this now is probably fine. If you'd still be interested in seeing the code, I'd be happy to attach it here. Things are working great now, and I'm grateful for your assistance. I'm also quite impressed with the JSF/JPF integration. Kudos to everyone involved. > FacesMessages unavailable in JSF > -------------------------------- > > Key: BEEHIVE-827 > URL: http://issues.apache.org/jira/browse/BEEHIVE-827 > Project: Beehive > Type: Bug > Components: NetUI > Versions: v1m1 > Environment: Sun JSF-ri, Tomcat 5.0.28 > Reporter: Mike Arnold > Fix For: V1 > > I created a FacesBackingBean that raises an action in the controller. The > action returns a Forward sending the request back to the JSF. The forward > generates an ActionOutput of a simple String message. In the onCreate() > method of the FacesBackingBean I called getPageInput() to retrieve the > ActionOutput. I then cast the output as a string and pass it to a new > FacesMessage which is passed to FacesContext.getInstance().addMessage(). In > the JSF, the message is not displayed using the <h:messages/> tag. > If I add the new FacesMessage to FacesContext in an event handler that does > not raise an action, the message is displayed as expected. > If I add the new FacesMessage to FacesContext in onCreate() without going > through an action, the statement throws a NPE. > @Override > protected void onCreate() throws Exception { > FacesContext.getCurrentInstance().addMessage("foo", new > FacesMessage("bar")); > } > Stack Trace: > java.lang.NullPointerException > at petstoreAdmin.login.onCreate(login.java:30) > at > org.apache.beehive.netui.pageflow.PageFlowManagedObject.create(PageFlowManagedObject.java:62) > at > org.apache.beehive.netui.pageflow.internal.FacesBackingBeanFactory.getFacesBackingBeanForRequest(FacesBackingBeanFactory.java:73) > at > org.apache.beehive.netui.script.common.ImplicitObjectUtil.loadImplicitObjects(ImplicitObjectUtil.java:161) > at > org.apache.beehive.netui.pageflow.PageFlowPageFilter.runPage(PageFlowPageFilter.java:271) > at > org.apache.beehive.netui.pageflow.PageFlowPageFilter.doFilter(PageFlowPageFilter.java:205) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) > at > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) > at > org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152) > at > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) > at > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118) > at > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > at > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) > at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) > at > org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705) > at > org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) > at > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) > at java.lang.Thread.run(Thread.java:595) -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira