You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@beehive.apache.org by Kenneth Holm Nielsen <kh...@tdc.dk> on 2007/11/29 13:31:21 UTC

PageFlow and portlet states

My problem is that some of my portlets lose their states without an
apparent reason.

The pageFlow beans are accessible on th controller like so:

	private BredbaandData bredbaandData;

	public BredbaandData getBredbaandData() {
		return bredbaandData;
	}

	public void setBredbaandData(BredbaandData bredbaandData) {
		this.bredbaandData = bredbaandData;
	}

The controller typically has two actions, where the begin action
forwards to one of them, like so:

    @Jpf.Action(
            forwards={
               @Jpf.Forward(name="current", action="current")
            }
        )
	public Forward begin(){
		Forward forward = new Forward("current");
		return forward;
    }

On the JSP I refer to the bean like so:

${pageFlow.bredbaandData.firstCall.display}

On the first go it works fine, but when running an action on another
portlet, the protlet shown above fails with the error:

Caught exception when evaluating expression
"{pageFlow.bredbaandOversigt.selectedPhoneNumberAsString}" with
available binding contexts [actionForm, pageFlow, globalApp, request,
session, application, pageContext, bundle, container, url, pageInput].
Root cause: java.lang.RuntimeException: Can not evaluate the identifier
"bredbaandOversigt" on a null object.

It indicates that the 'pageFlow' is null, how can this be? - the other
protlets dont get this.


Re: PageFlow and portlet states

Posted by Carlin Rogers <ca...@gmail.com>.
Hi Kenneth,

Are you saying the JSP with the expression
${pageFlow.bredbaandOversigt.selectedPhoneNumberAsString} works in one
portlet but not in another portlet or that this specific JSP with the
expression always fails? If it is the latter, maybe it is the case
that the path to the JSP does not correspond to a page flow
Controller.

Note that NetUI pages should be located in a web content directory
parallel to the src Controller so the path is equivalent to the
Controller package. For example, NetUI associates pages in
<WebContent>/myFlow/ go with the controller class in src/myFlow/. So a
request to an action with the path,

    myFlow/begin.do

should forward to a JSP such as,

    myFlow/index.jsp

If it forwards to a page in another directory (a different path), the
framework looks for a different page flow. If there's not one
associated to that path, then the implicit pageFlow object would be
null.

Kind regards,
Carlin

On 11/29/07, Kenneth Holm Nielsen <kh...@tdc.dk> wrote:
> My problem is that some of my portlets lose their states without an
> apparent reason.
>
> The pageFlow beans are accessible on th controller like so:
>
>         private BredbaandData bredbaandData;
>
>         public BredbaandData getBredbaandData() {
>                 return bredbaandData;
>         }
>
>         public void setBredbaandData(BredbaandData bredbaandData) {
>                 this.bredbaandData = bredbaandData;
>         }
>
> The controller typically has two actions, where the begin action
> forwards to one of them, like so:
>
>     @Jpf.Action(
>             forwards={
>                @Jpf.Forward(name="current", action="current")
>             }
>         )
>         public Forward begin(){
>                 Forward forward = new Forward("current");
>                 return forward;
>     }
>
> On the JSP I refer to the bean like so:
>
> ${pageFlow.bredbaandData.firstCall.display}
>
> On the first go it works fine, but when running an action on another
> portlet, the protlet shown above fails with the error:
>
> Caught exception when evaluating expression
> "{pageFlow.bredbaandOversigt.selectedPhoneNumberAsString}" with
> available binding contexts [actionForm, pageFlow, globalApp, request,
> session, application, pageContext, bundle, container, url, pageInput].
> Root cause: java.lang.RuntimeException: Can not evaluate the identifier
> "bredbaandOversigt" on a null object.
>
> It indicates that the 'pageFlow' is null, how can this be? - the other
> protlets dont get this.
>
>