Ich versuche, eine benutzerdefinierte Composite-Komponente taglib in meinem Büro zu erstellen, aber ich bekomme ein seltsames Problem mit EL. Es scheint, dass Ausdrücke wie # {cc.attrs. [Var]} bereits als leer aufgelöst werden.JSF2.0: EL sind nicht aufgelöst in einer Composite Component taglib
Ich versuche, meine Taglib in einem Glas zu erstellen. In meinem Glas Ich habe meine Dateien wie folgt bestellt:
| _/
..... | _ META-INF
.......... | _ COMPO. taglib.xml
.......... | _ Ressourcen
............... | _ Komponenten
.... ................ | _ hello.xhtml
compo.taglib.xml enthält:
<facelet-taglib xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facelettaglibrary_2_0.xsd"
version="2.0">
<namespace>http://www.example.com/jsf/compo</namespace>
<composite-library-name>compo</composite-library-name>
<tag>
<tag-name>hello</tag-name>
<source>./components/hello.xhtml</source>
</tag>
</facelet-taglib>
hello.xhtml enthält:
<?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:composite="http://java.sun.com/jsf/composite">
<composite:interface name="hello" displayName="hello">
<composite:attribute name="name" required="true" type="String"/>
</composite:interface>
<composite:implementation >
hello #{cc.attrs.name}!
</composite:implementation>
</html>
Mein Web-Projekt enthält in WEB-INF lib mein taglib als Glas, JSF-impl.jar und JSF -api.jar (von Mojarra) meine Seite ist einfach, dass:
<?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:comp="http://www.example.com/jsf/compo" >
<body>
<comp:hello name="John"></comp:hello>
</body>
</html>
Bei Rendering ich sehe "Hallo!" aber nicht "Hallo John!". Attribute Werte scheint irgendwo verloren zu sein. Ich versuche dieses Beispiel auf Tomcat 6.0.29 und Websphere 7.
Ich habe etwas falsch gemacht?