You can always use an included JSP and use tomahawk's aliasBean. Not as good long-term solution as facelets but is less invasive on an existing code base.
----- Original Message ----
From: Andrew Robinson <[EMAIL PROTECTED]>
To: MyFaces Discussion <users@myfaces.apache.org>
Sent: Thursday, June 15, 2006 12:59:42 PM
Subject: Re: Creating a custom Component for a whole page that renders any other component
From: Andrew Robinson <[EMAIL PROTECTED]>
To: MyFaces Discussion <users@myfaces.apache.org>
Sent: Thursday, June 15, 2006 12:59:42 PM
Subject: Re: Creating a custom Component for a whole page that renders any other component
Use facelets : it is made for these things.
Look into facelet user tags (source tags).
I just published a blog article on this and the ability to pass
methods to composite controls:
http://andrewfacelets.blogspot.com/
-Andrew
On 6/15/06, Remo Liechti <[EMAIL PROTECTED]> wrote:
> Hi all
> I have to create a custom component. But I don't have any idea how to do
> this, can anybody help me out?
>
> The problem is we have to set some stuff on every JSF page, like header
> etc.
> Now I'd like to create component like this:
>
>
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
>
> <%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c'%>
> <%@ taglib uri="http://java.sun.com/jsf/html"; prefix="h"%>
> <%@ taglib uri="http://java.sun.com/jsf/core"; prefix="f"%>
> <%@ taglib uri="http://myfaces.apache.org/tomahawk"; prefix="t"%>
> <%@ taglib uri="component.tags" prefix="custom"%>
>
> <custom:page name="my jsf page" css="my css file" >
>
> </custom:page>
>
> It should be able to render all other jsf components in it:
> <custom:page name="my jsf page" css="my css file" >
> <h:panelGrid columns="1">
> <h:column>
> <h:selectOneMenu id="selectedKpiGroup" ....
> <f:selectItems .../>
> </h:selectOneMenu>
> </h:column>
> </h:panelGrid>
> </custom:page>
>
>
>
> The custom page component should render this like things:
> <html>
> <f:view>
> <f:verbatim>
> <head>
> <link
> href="" rel="stylesheet"
> type="text/css">
> </head>
>
> <body>
> </f:verbatim>
> <h:form>
> <c:if test="${not empty flowExecutionKey}">
> <f:verbatim>
> <input type="hidden"
> name="_flowExecutionKey" value="${flowExecutionKey}" />
> </f:verbatim>
> </c:if>
>
> <t:div styleClass="title">
> <h:outputText value="myTitle" />
> </t:div>
>
>
>
>
> Does anybody know how to do this?
>
> Thanks a lot for your help!
>
> Regards,
> Remo
>
Look into facelet user tags (source tags).
I just published a blog article on this and the ability to pass
methods to composite controls:
http://andrewfacelets.blogspot.com/
-Andrew
On 6/15/06, Remo Liechti <[EMAIL PROTECTED]> wrote:
> Hi all
> I have to create a custom component. But I don't have any idea how to do
> this, can anybody help me out?
>
> The problem is we have to set some stuff on every JSF page, like header
> etc.
> Now I'd like to create component like this:
>
>
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
>
> <%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c'%>
> <%@ taglib uri="http://java.sun.com/jsf/html"; prefix="h"%>
> <%@ taglib uri="http://java.sun.com/jsf/core"; prefix="f"%>
> <%@ taglib uri="http://myfaces.apache.org/tomahawk"; prefix="t"%>
> <%@ taglib uri="component.tags" prefix="custom"%>
>
> <custom:page name="my jsf page" css="my css file" >
>
> </custom:page>
>
> It should be able to render all other jsf components in it:
> <custom:page name="my jsf page" css="my css file" >
> <h:panelGrid columns="1">
> <h:column>
> <h:selectOneMenu id="selectedKpiGroup" ....
> <f:selectItems .../>
> </h:selectOneMenu>
> </h:column>
> </h:panelGrid>
> </custom:page>
>
>
>
> The custom page component should render this like things:
> <html>
> <f:view>
> <f:verbatim>
> <head>
> <link
> href="" rel="stylesheet"
> type="text/css">
> </head>
>
> <body>
> </f:verbatim>
> <h:form>
> <c:if test="${not empty flowExecutionKey}">
> <f:verbatim>
> <input type="hidden"
> name="_flowExecutionKey" value="${flowExecutionKey}" />
> </f:verbatim>
> </c:if>
>
> <t:div styleClass="title">
> <h:outputText value="myTitle" />
> </t:div>
>
>
>
>
> Does anybody know how to do this?
>
> Thanks a lot for your help!
>
> Regards,
> Remo
>