[jboss-user] [JBoss Seam] - Page Parameter not working

stephen.friedrich do-not-reply at jboss.com
Tue Sep 11 17:29:47 EDT 2007


It seems I am caught in the heel that is framework integration once more: Seam 1.2.1, Trinidad 1.0.2, MyFaces 1.1.5

A page parameter set like this never makes it into the model:
<s:link view="/departments.xhtml" value="#{department.id}">
  |      <f:param name="departmentId" value="#{department.id}"/>
  | </s:link>

It works in the seampay example (which does not use Trinidad). It also worked when in my prototype I developed on 2.0.0. (CVS), JBoss 4.2.1, JSF RI and Trinidad 1.0.2.

Now that I had to port my app to Seam 1.2.1, Tomcat 5.5.17 and MyFaces 1.1.5 it stopped working.

I might have traced it down to a difference in Seam 1.2.1 / Seam 2.0.0 (I don't understand the code good enough to be sure, though).
Seam 2.0.0 seems to apply request values unconditionally :
SeamPhaseListener.afterRestoreView
  |    -> Pages.instance().postRestore(facesContext);
  |       ->  Pages.storeRequestParameterValuesInViewRoot(facesContext)
  |          -> Contexts.getPageContext().set( pageParameter.getName(), value );

Seam 1.2.1 only sets the parameter conditionally:
AbstractSeamPhaseListener.afterRestoreView
  |    ->
  |       if ( facesContext.getRenderResponse() )
  |       {
  |          Pages.instance().applyRequestParameterValues(facesContext);
  |       }
  |       else
  |       {
  |          Pages.instance().applyViewRootValues(facesContext);
  |       }

That condition never ever evaluates to true when I click the s:link.

Of course Trinidad 1.0.2 also must have something to do with it, since it works with seampay.


Please, some expert, help me out of my misery.
There's a deadline approaching and I have spent a whole day on this issue.

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4083186#4083186

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4083186



More information about the jboss-user mailing list