Как правильно получить параметры из URL-адреса в JSF?

Я считаю, что есть два способа получить параметры из URL-адреса в JSF.

Один из bean:

Map<String, String> params =FacesContext.getCurrentInstance().
                   getExternalContext().getRequestParameterMap();
String parameterOne = params.get("parameterOne");

а другой - на странице facelets

<f:metadata>
    <f:viewParam name="parameterOne" value="#{bean.parameterOne}"/>
</f:metadata>

Очевидно, для последнего потребуется поле в классе и getter/setter для него.

Кроме того, каковы различия между этими двумя разными подходами? Какой из них предпочтительнее?

Ответы