G
Gelöschtes Mitglied 68249
Gast
Hi,
ich habe folgende Seite:
Wenn ich die laden möchte kommt es zu folgendem Fehler:
Aber eigentlich sollte die Eigenschaft openTab.subpage nicht leer sein, weil ich diese initialisieren lassen:
Beim Debuggen habe ich aber schon gesehen, dass er nie an den Code ran kommt. Scheinbar versucht er erst die Seite zu interpretieren und dann erst lädt er die Bean.
Ich möchte an der Stelle dynamisch Tabs darstellen. Also die Suche soll immer als erster Tab angezeigt werden und dann kann man die Suchergebnisse öffnen und für jedes geöffnete Ergebnis gibt es einen neuen Tab.
Problem ist aber, dass es verschiedene Unterseiten gibt, je nach Typ des Ergebnis.
Mit einer Reihe von vorher gesuchten Ergebnissen aus einer einzigen Entität hat das schon geklappt, nur verzählt sich Primefaces scheinbar dann bei der Tab-Nummer und der Anzahl der Tabs, wenn man ein Tab schließt.
Aber an der Stelle würde ich jetzt einfach gerne Tabs mit dynamischen Namen laden.
ich habe folgende Seite:
HTML:
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:p="http://primefaces.org/ui"
template="../layout.xhtml">
<ui:define name="header">
ProIPS - Datenpflege
</ui:define>
<ui:define name="main">
<f:event type="preRenderView" listener="#{proIpsSearchHandler.onLoad}" />
<h:form id="datenpflegeForm">
<p:growl id="msgs" showDetail="true" skipDetailIfEqualsSummary="true" />
<div class="card">
<p:tabView dynamic="true" id="tabViewProIps" widgetVar="tabViewProIps"
value="#{proIpsSearchHandler.openTabList}" style="padding:0" var="openTab"
cache="false" scrollable="true" rendered="#{openTab.inited}">
<p:ajax event="tabChange" listener="#{proIpsSearchHandler.onTabChange}" update=":datenpflegeForm:msgs" />
<p:ajax event="tabClose" listener="#{proIpsSearchHandler.onTabClose}" update=":datenpflegeForm:msgs" />
<p:tab title="#{openTab.title}" closable="#{openTab.closable}" >
<ui:include src="./dataexplorer/#{openTab.subpage}.xhtml" />
</p:tab>
</p:tabView>
</div>
</h:form>
</ui:define>
</ui:composition>
Wenn ich die laden möchte kommt es zu folgendem Fehler:
Code:
java.io.FileNotFoundException: Facelet /proips/dataexplorer/.xhtml not found at: file:/C:/Projekte/ATCworkspace/AssetToConnector/WebContent/proips/dataexplorer/.xhtml
at org.apache.myfaces.view.facelets.impl.DefaultFaceletFactory._createFacelet(DefaultFaceletFactory.java:376)
at [internal classes]
Aber eigentlich sollte die Eigenschaft openTab.subpage nicht leer sein, weil ich diese initialisieren lassen:
Java:
public void onLoad() {
openTabList.add(new OpenTabObj("Suche", "search", null, false));
}
Beim Debuggen habe ich aber schon gesehen, dass er nie an den Code ran kommt. Scheinbar versucht er erst die Seite zu interpretieren und dann erst lädt er die Bean.
Ich möchte an der Stelle dynamisch Tabs darstellen. Also die Suche soll immer als erster Tab angezeigt werden und dann kann man die Suchergebnisse öffnen und für jedes geöffnete Ergebnis gibt es einen neuen Tab.
Problem ist aber, dass es verschiedene Unterseiten gibt, je nach Typ des Ergebnis.
Mit einer Reihe von vorher gesuchten Ergebnissen aus einer einzigen Entität hat das schon geklappt, nur verzählt sich Primefaces scheinbar dann bei der Tab-Nummer und der Anzahl der Tabs, wenn man ein Tab schließt.
Aber an der Stelle würde ich jetzt einfach gerne Tabs mit dynamischen Namen laden.