Bedingt render-JSF h:panelGrid auf der Anwesenheit der query-string (oder ohne query-string)

Ich versuche, dynamisch zu Rendern, einige Zusammensetzung/templates basierend auf dem Vorhandensein von einem query-string oder das fehlen einer query-string. Zum Beispiel:

localhost:9080/myWonderfulApp/test.xhtml?foo=bar

Dieser Werke, A. xhtml wird eingezogen.

localhost:9080/myWonderfulApp/test.xhtml

Dies nicht funktioniert, B. xhtml nicht mitgezogen.

Ich habe Probleme mit dem fehlen eines query-string-Teil. Ich kann die render-A. xhtml-wenn ich den pass ?foo=bar, aber ich kann nicht scheinen, um B. xhtml gerendert, wenn ich keine query-string. Ich habe versucht, einige Varianten, die ich zunächst dachte, #{param['foo'] != 'bar' funktionieren würde, aber ich denke, dass das nicht funktioniert, weil ich nicht ein foo-Abfrage param überhaupt. Ich habe versucht, die überprüfung, ob Parameter == null, aber das hat nicht funktioniert entweder.

Ist es möglich, meine rendered-Attribut auf der Grundlage der NICHT-query-string?

Ich kann nicht setzen Sie einfach einen anderen query-string für B. xhtml, entweder ich arbeite an einer legacy app, bekommt 2 verschiedene skins, so Nachrüstung alle alten apps, die link in eine option nicht. Neue apps benutzen wird einen Abfrage-string, die alten brauchen, um eine alte Haut in Verbindung mit keine query-string.

<!--This works-->
<h:panelGrid rendered="#{param['foo'] == 'bar' ? true : false}">
    <ui:composition template="A.xhtml">...</ui:composition>
</h:panelGrid>

<!--This doesn't work-->
<h:panelGrid rendered="#{param == null ? true : false}">
    <ui:composition template="B.xhtml">...</ui:composition>
</h:panelGrid>

Diese scheint nicht zu funktionieren, entweder:

<h:panelGrid rendered="#{empty facesContext.externalContext.requestParameterMap.foo ? true : false}">

InformationsquelleAutor magenta placenta | 2012-03-22

Schreibe einen Kommentar