Question

Do we always need to pass parameters to the URL to retrieve them ?

In my example , I can't get to retrieve my param named 'study'; How should i do that ?

XHTML File Sender:

<h:commandButton  value="Send" type="button" action="pretty:participant">
    <f:param  name="study"  value ="test"  />
</h:commandButton> 

XHTML File Recever:

<h:outputFormat value="Print : {0} ">
   <f:param value="#{study}" />      
</h:outputFormat>

Pretty Config XML :

<url-mapping id="participant">
    <pattern value="/Participant/New/" />
    <view-id value="/addParticipant.xhtml" />
</url-mapping>
Was it helpful?

Solution

If you want to do it using prettyfaces, yes, you must because it's an url rewritting tool, so the params must go into the url. For your code to work, you should use the f:viewParam tag before using it in your receiver page:

<f:metadata>
    <f:viewParam name="study" value="#{destinationBean.study}" />
</f:metadata>

<h:outputFormat value="Print : {0} ">
   <f:param value="#{destinationBean.study}" />      
</h:outputFormat>

However, if you want to get rid of sending the parameter via url, you have the flash scope as an alternative. That, however, involves JSF and not Prettyfaces. If you want to go with this solution I highly encourage you to avoid early versions of Mojarra JSF 2.x, as they are buggy related to that.

OTHER TIPS

Yes, you have to store the parameter somewhere in the URL to retrieve it later. You can do this with either a path parameter or a query parameter. Typically you bind the parameter to bean property with your mapping. This way you can retrieve the value in the page using standard EL expressions which are referring to your bean properties.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top