2013-07-26 15 views
17

Wierzę, że istnieją 2 sposoby na uzyskanie parametrów z adresu URL w JSF.Jak poprawnie uzyskać parametry z adresu URL w JSF?

z których jedna jest w ziarnach:

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

, a drugi jest w stronę Facelets

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

Oczywiście, ten drugi wymaga pola na klasy i ustaw/pobierz na to .

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

+0

Całkiem zgrabny artykuł na niekorzyść '' http://jdevelopment.nl/stateless -stateful-jsf-view-parameters/ – Andy

+0

@Andy: który jest rozwiązany przez OmniFaces '' (od tego samego autora co artykuł, który tam podłączyłeś). – BalusC

+1

@BalusC Tak, faktycznie znalazłem to w jednym z [wpisów w blogu] (http://balusc.blogspot.com/2012/03/stateless-view-parameter.html). Myślałem, że OP może się podobać. Heck, dowiedziałem się o tym kilka godzin temu. – Andy

Odpowiedz

25

myślę, że może to pomóc: Get Request and Session Parameters and Attributes from JSF pages

W rzeczywistości, nie powinno być zapytanie:

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

Myślę, że pytanie jest "Jak uzyskać parametr URL-a w moim widoku bez dodawania metody w widoku?" –

+0

Dodatkowo możesz użyć '' dla bardziej przyjaznej składni. –