Titel in h:Kopf dargestellt, bevor der render-response-phase?
Ich versuche, den Wert für das HTML-element title (innen h:head-element) dynamisch basierend auf view-Parameter. Ich bin der Wert verwendet werden, in einem preRenderView system-Ereignis. Ich habe bemerkt, dass die EL um den Titel zu Holen wird ausgewertet, bevor die preRenderView-Ereignis ausgelöst wird! Warum ist das so und gibt es irgendetwas, was ich tun kann?
Wenn schnappe ich mir den generierten Titel Wert in h:outputText irgendwo in der Seite, es ist wie erwartet angezeigt.
Passenden:
<h:head>
<title>#{myBean.title}</title>
</h:head>
Bean:
public void preRenderView(ComponentSystemEvent event) {
title = "Person: " + firstname " " + lastname;
}
- Nicht reproduzieren können, Ihr problem auf Mojarra 2.0.3 noch 2.1.1. Was JSF-impl/version verwenden Sie?
- Ich bin mit GlassFish 3.1 und ich denke, dass kommt mit Mojarra 2.1.
- Das Beispiel, das ich gab oben ist eine Vereinfachung - ich bin tatsächlich mit einer Vorlage, so dass jeder meiner Seiten können Ihre eigenen dynamischen Titel: <title><ui:insert - > name="title"></ui:insert></title>. Vielleicht Fragen?
- Nicht reproduzieren können, auf GF 3.1 als gut. Wie genau sind Sie aufrufen der
preRenderView
? - Ahhh... Du hast gerade meine Frage beantwortet! Ich zog vor kurzem die preRenderView zu einem preRenderComponent auf ein leeres Element, so dass die ajax-Anfragen würden nicht auslösen preRenderView Veranstaltung. Das brach der dynamische Titel! Danke. Lassen Sie mich wissen, wie Ihnen Punkte, weil ich bin neu bei StackOverflow.
- Ah, du bist im Grunde mit der Ajax-Anfragen zu navigieren? Sowieso, durch Zufall bin ich schon gepostet, eine Antwort.
- Nochmals vielen Dank. Ich bin nicht mit Ajax zu navigieren, aber ich habe eine Seite mit einer TabPane und jedem Register gespeichert werden kann, selbständig mit Ajax. Diese Ajax rettet trigger die preRenderView system-Ereignis! Es ist eine Diskussion über wie zu deal mit dieses, auf StackOverflow eigentlich: stackoverflow.com/questions/2830834/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kann ich nicht reproduzieren, diese auf Mojarra 2.0.2 ~ 2.0.6 und 2.1.1. Ich habe folgende test-bean
Und die folgende Ansicht:
Und auch die folgenden master-template
mit dieser definition
Alle arbeiten gleich gut. Der Titel wird
newtitle
in allen Fällen. Auch war es nicht wirklich eine Rolle, wo die<f:event>
wurde in der Vorlage. Vor Kopf, innerhalb des Körpers, in der master-Vorlage oder in der template-definition.Wahrscheinlich ist das problem in der Art und Weise, wie Sie aufgerufen
preRenderView
. Die obigen Beispiele sollten Ihnen einen guten Start weiter auszubauen und zu naildown Ihre eigentliche problen.