Pytanie Jak poprawnie uzyskać parametry z adresu URL w JSF? [duplikować]


To pytanie już zawiera odpowiedź:

Sądzę, że istnieją dwa sposoby uzyskania parametrów z adresu URL w JSF.

Jedna istota w fasoli:

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

a drugi znajduje się na stronie z płatkami

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

Oczywiście ten drugi będzie wymagał pola w klasie i gettera / setera dla niego.

Poza tym, jakie są różnice między tymi dwoma różnymi podejściami? Który z nich powinien być preferowany?


21
2017-07-26 19:59


pochodzenie


Całkiem fajny artykuł o niekorzyść <f:viewParam>  jdevelopment.nl/stateless-stateful-jsf-view-parameters - Andy
@Andy: który jest rozwiązywany przez OmniFaces <o:viewParam> (od tego samego autora co artykuł, który tam podłączyłeś). - BalusC
@BalusC Tak, faktycznie znalazłem to w jednym z twoich wpisy na blogu. Myślałem, że OP może się podobać. Heck, dowiedziałem się o tym kilka godzin temu. - Andy
Ustaw parametr w widoku powiązania z atrybutem bean, spójrz stackoverflow.com/questions/13495797/... - Diogo Alves


Odpowiedzi:


Myślę, że to może pomóc: Uzyskaj żądania i parametry sesji oraz atrybuty ze stron JSF

W rzeczywistości powinno być zapytanie:

<h:outputText value="#{param['id']}" />

27
2017-07-26 20:30



Myślę, że pytanie brzmi "Jak uzyskać parametr URL-a w moim widoku, bez dodawania metody w widoku?" - Christian Kuetbach
Dodatkowo możesz użyć <h:outputText value="#{param.id}" /> dla bardziej przyjaznej składni. - Bruno Gasparotto