hallo zusammen,
weiss jemand, wie das geht?
folgende code liegt mir vor:
in der datei /WEB-INF/tld/UserTags.tld steht u.a. folgendes:
[XML]<tag>
<name>Message</name>
<tag-class>com.aastra.ch.commons.jsf.taglib.Message
</tag-class>
<bodycontent>jsp</bodycontent>
<attribute>
<name>id</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>[/XML]
in der web.xml das hier:
[XML] <jsp-config>
<taglib>
<taglib-uri>usertags</taglib-uri>
<taglib-location>/WEB-INF/tld/UserTags.tld</taglib-location>
</taglib>
</jsp-config>[/XML]
in einem jsp das hier, und das funktioniert:
<%@ taglib uri="usertags" prefix="user"%>
<user:Message id="test123" />
aber was muss ich im falle von facelets machen???
sowas scheint nicht zu funktionieren:
[XML]
<html xmlns:usertags="/WEB-INF/tld/UserTags.tld".....>
<usertags:Message id="test123" />[/XML]
da kommt irgendwas in der art <usertags:Message id="test123"></usertags:Message> heraus...
warum? jsf kann ja schliesslich jstl-tags interpretieren, zumindest bereits vorhandene? frage mich, ob das auch bei selbstprogrammierten der fall ist??
danke & grüsse, jan
weiss jemand, wie das geht?
folgende code liegt mir vor:
Java:
import java.io.IOException;
import java.util.Map;
import java.util.WeakHashMap;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.Tag;
import javax.servlet.jsp.tagext.TagSupport;
import test.MessageDictionary;
public final class Message extends TagSupport
{
private final Map<String, Object> parametersMap = new WeakHashMap<String, Object>();
private static MessageDictionary md = null;
public void setId(final String caId)
{
this.parametersMap.put("id", caId);
}
public String getId()
{
return this.parametersMap.get("id").toString();
}
public String getMessage()
{
md = (MessageDictionary) this.pageContext.getRequest().getAttribute("dictionary");
return Message.md.getHtmlMsg(getId());
}
@Override
public int doEndTag() throws JspException
{
return Tag.EVAL_PAGE;
}
@Override
public int doStartTag() throws JspException
{
final JspWriter clJspWriter = this.pageContext.getOut();
try
{
final StringBuffer lOutput = new StringBuffer();
lOutput.append(this.getMessage());
clJspWriter.println(lOutput);
return super.doStartTag();
}
catch (final IOException e)
{
e.printStackTrace();
}
return -1;
}
}
in der datei /WEB-INF/tld/UserTags.tld steht u.a. folgendes:
[XML]<tag>
<name>Message</name>
<tag-class>com.aastra.ch.commons.jsf.taglib.Message
</tag-class>
<bodycontent>jsp</bodycontent>
<attribute>
<name>id</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>[/XML]
in der web.xml das hier:
[XML] <jsp-config>
<taglib>
<taglib-uri>usertags</taglib-uri>
<taglib-location>/WEB-INF/tld/UserTags.tld</taglib-location>
</taglib>
</jsp-config>[/XML]
in einem jsp das hier, und das funktioniert:
<%@ taglib uri="usertags" prefix="user"%>
<user:Message id="test123" />
aber was muss ich im falle von facelets machen???
sowas scheint nicht zu funktionieren:
[XML]
<html xmlns:usertags="/WEB-INF/tld/UserTags.tld".....>
<usertags:Message id="test123" />[/XML]
da kommt irgendwas in der art <usertags:Message id="test123"></usertags:Message> heraus...
warum? jsf kann ja schliesslich jstl-tags interpretieren, zumindest bereits vorhandene? frage mich, ob das auch bei selbstprogrammierten der fall ist??
danke & grüsse, jan
Zuletzt bearbeitet von einem Moderator: