In einer JSF-Seite verwende ich UI: Include.
index.xhtml:Jsf übergeben Bean als Parameter zu enthalten xhtml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets">
<h:head>
<title>test</title>
</h:head>
<h:body>
<ui:include src="included.xhtml" >
<ui:param name="myBean" value="beanA" />
</ui:include>
</h:body>
</html>
und ich möchte ein Bean Namen übergeben, damit die eingeschlossenen Inhalt eine Methode auf dem Bohnen
included.xhtml anrufen:
<ui:composition
xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets">
This is from included file.<br/>
#{myBean[greeting]}
</ui:composition>
die Bean ist so einfach wie möglich
BeanA.java:
package com.test;
import java.io.Serializable;
import javax.faces.bean.ManagedBean;
@ManagedBean
public class BeanA implements Serializable{
public String getGreeting(){
return "hello from BeanA";
}
}
bei einer früheren Antwort auf Stackoverflow suchen: JSF 2: how to pass an action including an argument to be invoked to a Facelets sub view (using ui:include and ui:param)? Ich habe erwartet, dies funktioniert, aber es funktioniert nicht. Der Text "Dies ist aus eingeschlossener Datei" wird gedruckt, aber nicht die BeanA-Eigenschaft. Kann mir jemand sagen warum?
Schließlich möchte ich zu der eingeschlossenen Datei sowohl einen Bean-Namen als auch den Methodennamen übergeben, den ich aufrufen möchte. Im Moment kann ich dieses einfachere Beispiel nicht einmal dazu bringen, mich so zu verhalten, wie ich es erwarten würde.
Mojarra 2.2.0 Apache Tomcat/7.0.55
Warum glaubst du ' ' Seele d arbeiten, während der Link, auf den Sie verweisen, explizit EL im param-Wert ('# {beanA'}) verwendet? Und bist du sicher, dass nirgendwo Fehler sind? (z. B. wenn Sie irgendwo eine h: -Nachricht einfügen oder die App im Entwicklungsmodus ausführen)? –
Kukeltje
Kukeltje: Ich habe versucht , und das hat nicht funktioniert. gibt keine Ausgabe. Es wird auch keine Fehlerausgabe an das Tomcat-Fehlerprotokoll ausgegeben. –
rgh
Wo haben Sie die Variable '# {gruß}' definiert? Wenn Sie keinen solchen haben und es sich nur um den Namen der Eigenschaft handelt, sollten Sie '# {myBean.greeting}' verwenden. – BalusC