You also need to tell facelets to look at your custom-taglib:
Add to web.xml something like:
<context-param>
<param-name>facelets.LIBRARIES</param-name>
<param-value>/WEB-INF/custom-taglib.xml</param-value>
</context-param
You can add more files to the param-value, just separate each file by
a semicolon.
Good luck!
-Sol
On Nov 27, 2006, at 8:05 AM, Christian Wiesing wrote:
Thanks,
i created the Facelets-Taglib-File, but it still don't work. It
would be great if somebody could tell me what I do wrong. See my
source code below.
Thanks.
Christian
---------------------------------------
view.xhtml ----------------------------
---------------------------------------
<!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:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:cf="http://test.com/customtags">
<cf:jsfhello hellomsg="Hello world." />
</html>
---------------------------------------
custom-taglib.xml ---------------------
---------------------------------------
<?xml version="1.0"?>
<!DOCTYPE facelet-taglib PUBLIC
"-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN"
"http://java.sun.com/dtd/facelet-taglib_1_0.dtd">
<facelet-taglib>
<namespace>http://test.com/customtags</namespace>
<tag>
<tag-name>jsfhello</tag-name>
<component>
<component-type>demo.JsfHello</component-type>
</component> </tag>
</facelet-taglib>
---------------------------------------
faces-config --------------------------
---------------------------------------
<faces-config>
<component>
<component-type>demo.JsfHello</component-type>
<component-class>demo.HelloUIComp</component-class>
</component>
---------------------------------------
HelloUIComp.java -------------------
---------------------------------------
package demo;
import java.util.Date;
import javax.faces.component.UIComponentBase;
import javax.faces.context.FacesContext;
import java.io.IOException;
import javax.faces.context.ResponseWriter;
public class HelloUIComp extends UIComponentBase
{
public void encodeBegin(FacesContext context) throws IOException
{
ResponseWriter writer = context.getResponseWriter();
String hellomsg = (String)getAttributes().get("hellomsg");
writer.startElement("h3", this);
if(hellomsg != null)
writer.writeText(hellomsg, "hellomsg");
else
writer.writeText("Hello from a custom JSF UI Component!",
null); writer.endElement("h3"); writer.startElement
("p", this);
writer.writeText(" Today is: " + new Date(), null);
writer.endElement("p"); }
public String getFamily()
{
return "HelloFamily";
}
}
---------------------------------------
FacesHelloTag -----------------------
---------------------------------------
package demo;
import javax.faces.application.Application;
import javax.faces.webapp.UIComponentTag;
import javax.faces.component.UIComponent;
import javax.faces.el.ValueBinding;
import javax.faces.context.FacesContext;
public class FacesHelloTag extends UIComponentTag
{
// Declare a bean property for the hellomsg attribute.
public String hellomsg = null;
// Associate the renderer and component type.
public String getComponentType() { return "demo.JsfHello"; }
public String getRendererType() { return null; }
protected void setProperties(UIComponent component)
{
super.setProperties(component);
// set hellomsg
if (hellomsg != null)
{
if (isValueReference(hellomsg))
{
FacesContext context = FacesContext.getCurrentInstance();
Application app = context.getApplication();
ValueBinding vb = app.createValueBinding(hellomsg);
component.setValueBinding("hellomsg",
vb); }
else
component.getAttributes().put("hellomsg", hellomsg);
} }
public void release()
{
super.release();
hellomsg = null;
}
public void setHellomsg(String hellomsg)
{
this.hellomsg = hellomsg;
}
}
Matthias Wessendorf schrieb:
Hi Christian,
take a look at [1]. That describes the steps for Tomahawk custom
components; which are also true for your custom components.
HTH,
Matthias
[1] http://wiki.apache.org/myfaces/Use_Facelets_with_Tomahawk
On 11/27/06, Christian Wiesing <[EMAIL PROTECTED]> wrote:
Hello,
how can I use custom JSF components with Facelets? I have some JSF
components which I wanna use in my Facelets-Web-App.
Is there any example or something like that?
regards,
Christian