How get GET parameters with JSF2? [duplicate]

2019-01-18 12:47发布

问题:

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?

回答1:

Two ways (both examples assume that the parameter name is parameter as in your question):

  1. 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.

  2. 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}")


回答2:

Use tag "<f:view ( View Parameters ) to bind to bean and get the parameter

Also u can inject the parameters using #{param.content}



标签: jsf jsf-2 get