dev@jsftemplating.java.net

Re: JSFTemplating: JSF Components inside JSF Templating template files

From: Ken Paulsen <Ken.Paulsen_at_Sun.COM>
Date: Mon, 23 Jun 2008 12:49:39 -0700

Hi Jaco,

It looks like there was a big bug that you stumbled on in JSFT wrt
creating/rendering nested components when defining template-based
components. I looked into this problem and fixed it. Please rebuild
jsftemplating, or wait for today's nightly build (I think it run in
about 6 hours). Sorry for the problem! If you'd like to submit a bug
for this (even though it is already fixed), you can send the bug ID to
the GAP email alias (see: http://glassfish.org/GAP for more details).

The difference between jsftemplating.jar and jsftemplating-base.jar is
very minor. "base" does not add the faces-config.xml entry to instruct
JSF to use the JSFTemplating ViewHandler. This means JSFTemplating will
not process any pages, this is good if you're only using JSFTemplating
for creating components. As for interoperability with Facelets (or
JSP), there are ways to configure JSFT to work side-by-side with both of
these. For JSP, there's no configuration required. For Facelets, you
have to add a couple web.xml entries to tell Facelets and JSFT which
requests it should handle.

Let me know if you find anything else!

Ken Paulsen

Jaco Prinsloo wrote:
> Hi All,
>
> Ken has been helping me to get my project up and running with JSF
> Templating (thanks Ken!) and he suggested that I take further
> questions to this mailing list.
> I have a few questions/problems still bothering me, so here they are:
>
> 1) In a previous mail Ken showed me how to output a piece of text a
> number of times as specified through my custom component's attributes.
> I'd like to do the exact same thing, only instead of just outputting
> text I'd like to create JSF components (a h:outputText, for example).
> In other words, my custom component's tag should look like this:
>
> <my:component value="Hello World!" count="3" />
>
> Which should then produce the following JSF (to be parsed by the JSF
> engine):
>
> <h:outputText value="Hello World!" />
> <h:outputText value="Hello World!" />
> <h:outputText value="Hello World!" />
>
> 2) I have JSF Templating up and running and I'm using a facelets/xhtml
> template file. Everything displays fine and my ui:events are being
> handled correctly, but if I add a JSF component as a child of another
> component, the child component isn't displayed. For example, the
> following xhtml will output a message followed by an empty panel grid:
>
> <!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
> <ui:composition ... >
> <h:outputText value="This is displayed." />
> <h:panelGrid>
> <h:outputText value="This is ignored." />
> </h:panelGrid>
> </ui:composition>
>
> 3) I'm not 100% sure of the differences between jsftemplating.jar and
> jsftemplating-base.jar. As I understand it, the former has its own
> ViewHandler while the latter uses the provider ViewHandler. Am I
> correct in thinking that if I use Facelets, which has its own
> ViewHandler, I have to use jsftemplating-base.jar?
>
> Thank you,
> Jaco