This question already has an answer here:
-
How do I process GET query string URL parameters in backing bean on page load?
3 answers
I have this url for example:
http://example.com?parameter=content
When the user click in this link, then I should be able to get the parameter value which is 'content'.
I was reading BalusC tutorial but is JSF 1.2 and I'm learning with JSF 2.
How could I do that?
Two ways (both examples assume that the parameter name is parameter
as in your question):
Use @ManagedProperty
on the desired bean property:
@ManagedProperty("#{param.parameter}")
private String parameter;
This works on request scoped beans only and does not allow for fine grained conversion and validation.
Use <f:viewParam>
in the view pointing to the desired bean property:
<f:metadata>
<f:viewParam name="parameter" value="#{bean.parameter}" />
</f:metadata>
This works on view scoped beans as well and allows for fine grained conversion and validation using the standard validators like as on normal input components. It even allows for attaching a <h:message>
.
See also:
- Communication in JSF 2.0 - Processing GET request parameters
- ViewParam vs @ManagedProperty(value = "#{param.id}")
Use tag "<f:view
( View Parameters ) to bind to bean and get the parameter
Also u can inject the parameters using #{param.content}