In der folgenden Seite kann ich automobileLists
nicht laden, da die Methode zum Auffüllen außerhalb der Komponente in einem f:metadata
ist. Ich habe einen NullPointerException-Fehler. Teilcode:Kann nicht verwendet werden f: Metadaten f: viewAction von innerhalb von Komponenten
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://xmlns.jcp.org/jsf/core">
<h:head>
<title>title</title>
</h:head>
<f:metadata>
<f:viewAction action="#{primeAutomobileController.populateAutomobileFieldList}"/>
</f:metadata>
<ui:composition template="layout/template.xhtml">
<ui:define name="content">.....................
Der einzige Weg für mich, um Spielraum zu laden ist die primeAutomobileController
zu Sitzung statt der ursprünglichen Anfrage, und rufen Sie die Methode von einer vorhergehenden Seite über eine Schaltfläche, ich mag es laden am Anfang der Seite, anstatt sie vorher aufzurufen. Das Verfahren in Frage:
public void populateAutomobileFieldList(){
List<String> automobileFieldSource = new ArrayList<>();
List<String> automobileFieldTarget = new ArrayList<>();
automobileFieldSource.add("Make");
automobileFieldSource.add("Model");
automobileFieldSource.add("Year");
automobileFieldSource.add("Description");
setAutomobileList(new DualListModel<>
(automobileFieldSource, automobileFieldTarget));
}
Teil index.xhtml Seite, wo f:metadata
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://xmlns.jcp.org/jsf/core">
<h:head>
<title>title</title>
</h:head>
<f:metadata>
<f:viewAction action="#{primeAutomobileController.loadAutomobiles}"/>
<f:viewAction action="#{primeAutomobileController.populateAutomobileFieldList}"/>
</f:metadata>
<ui:composition template="layout/template.xhtml">
<ui:define name="content"> ......................
hier beide Methoden in f:metadata
richtig geladen werden, wie es in einem Beispiel in einem Video-Tutorial gezeigt ist i folge, aber wenn es genau der gleiche Code in einem anderen xhtml ist, funktioniert es nicht.
I‘, wie gezeigt durchgeführt werden Ich habe versucht, dem Beispiel zu folgen, aber es lädt mich immer noch nicht, ich fügte in der Post meine 'index.xhtml' Seite hinzu, wo genau der gleiche Code geladen wird. – MrSir
@mrsir: Hast du die Antwort gelesen und die Antwort mit deinem Code verglichen? – Kukeltje