/ / JSF2 Navigation durch Ajax - Ajax, JSF, Navigation

JSF2 Navigation durch Ajax - Ajax, JSF, Navigation

Ich habe gerade diesen Beitrag gesehen Verknüpfung.

Ich habe versucht, darauf basierend ein Beispielprojekt zu erstellen. Ersetzen Sie einfach die primeface-Schaltfläche durch eine jsf-Befehlsschaltfläche. Siehe unten:

template.xhtml

<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets">

<h:head>
<!-- Links to CSS stylesheets... -->
<title>title</title>
</h:head>

<h:body>
<div id="wrapper">
<div id="header">header</div>
<script>alert("test");</script>
<h:panelGroup id="content">
<ui:insert name="content">
Sample content.
</ui:insert>
</h:panelGroup>
</div>

<div id="footer">footer</div>
</h:body>

page1.xhtml sieht so aus:

<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
template="./template.xhtml">

<ui:define name="content">
<h2>Page 1</h2>

<h:form>
<p>bla</p>
<h:commandButton value="page2" action="page2">
<f:ajax render=":content"></f:ajax>
</h:commandButton>
</h:form>
</ui:define>

Endlich sieht page2.xhtml so aus:

<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
template="./template.xhtml">

<ui:define name="content">
<h2>Page 2</h2>

<h:form>
<p>blabla</p>
<h:commandButton value="page1" action="page1">
<f:ajax render=":content"></f:ajax>
</h:commandButton>
</h:form>
</ui:define>

Wie Sie sehen können, habe ich ein kurzes Javascripttemplate.xhtml. Ich möchte jetzt, dass dieses Javascript nicht aufgerufen wird, wenn von Seite1 zu Seite2 gewechselt wird. Also dachte ich, mit dieser Ajax-Navigation wird nur der Inhaltsteil aktualisiert und das Skript wird nicht bei einem Seitenwechsel aufgerufen.

Wenn ich jedoch auf den Befehlsschaltflächen klicke, wird das Skript ausgeführt. Ich habe einen Blick auf Firebug geworfen und sah, dass der Lochkörperteil nicht nur den Inhalt div.

Was mache ich falsch? Ist es möglich, mit dieser Schablonentechnik nur im Inhaltsbereich zu navigieren? Oder muss ich nach einem anderen Ansatz suchen, um dieses Problem zu lösen?

Ich benutze Kater und meine Gesichter.

Danke im Voraus!

Antworten:

0 für die Antwort № 1

Ich glaube nicht, dass dies möglich ist. Wenn Sie die Ansicht von Seite1 zu Seite2 ändern, wird die Seite2 im Wesentlichen von der Vorlage aus erstellt.

Wenn das Skript für page1 ausgeführt werden soll, dannFügen Sie es in den Inhalt von page1 ein, das in die Vorlage eingefügt wird, und fügen Sie es nicht in page2 ein. Auf diese Weise rufen Sie das Skript nur auf, wenn dies nicht in der Master-Vorlage erforderlich ist.