2013-07-26 6 views
17

Ich glaube, es gibt 2 Möglichkeiten, die Parameter von der URL in JSF zu erhalten.Wie erhalten Sie Parameter von der URL in JSF richtig?

One in der Bohne zu sein:

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

und die andere in der facelets Seite zu sein

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

Offensichtlich ist die letztere ein Feld in der Klasse und Getter/Setter für sie benötigen .

Abgesehen davon, was sind die Unterschiede zwischen diesen 2 verschiedenen Ansätzen? Welcher sollte bevorzugt werden?

+0

Recht ordentlich Artikel zu einem Nachteil von '' http://jdevelopment.nl/stateless -stateful-jsf-view-parameters/ – Andy

+0

@Andy: was von OmniFaces '' (von dem gleichen Autor wie der Artikel, den Sie dort verlinkt) gelöst wird. – BalusC

+1

@BalusC Ja, ich fand das tatsächlich in einem deiner [Blogeinträge] (http://balusc.blogspot.com/2012/03/stateless-view-parameter.html). Ich dachte OP könnte gefallen. Ich habe vor ein paar Stunden selbst davon erfahren. – Andy

Antwort

25

ich denke, das helfen kann: Get Request and Session Parameters and Attributes from JSF pages

In der Tat sollte es eine Abfrage sein:

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

Ich denke, die Frage ist "Wie bekomme ich einen URL-Parameter in meiner Ansicht, ohne eine Methode in der Ansicht hinzuzufügen?" –

+0

Zusätzlich können Sie '' für eine freundlichere Syntax verwenden. –

Verwandte Themen