[jboss-user] [JBoss Seam] - Help Facelets in seam are not recursive
dreuzel
do-not-reply at jboss.com
Wed Dec 5 06:43:46 EST 2007
Facelets NOT RECURSIVE
As I call a facelet indiectly from an other facelet the returned attributs
are different. This leads to impossible interpretation of the final Tag value
and causes facelets using <c:if test="${arg}" to fail depending on the recursive level
where it is called.
Any help is welcome
More detailed :
|
| as I can produce a facelet :
|
| The value of "${action}" is different depending on its use
| Detected by TagHandler
|
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
| <html>
| <ui:composition xmlns="http://www.w3.org/1999/xhtml"
| xmlns:c="http://java.sun.com/jstl/core"
| xmlns:s="http://jboss.com/products/seam/taglib"
| xmlns:ui="http://java.sun.com/jsf/facelets"
| xmlns:f="http://java.sun.com/jsf/core"
| xmlns:h="http://java.sun.com/jsf/html"
| xmlns:rich="http://richfaces.org/rich"
| xmlns:a4j="http://richfaces.org/a4j">
|
| <m:xxx tag="${action}">
| </m:xxx>
| </ui:composition>
| THIS TEXT WILL BE REMOVED AS WELL
| </html>
|
I'm checking for the obtained value using xxx as Taghandler
|
| String Tag=((TagAttribute) tag).getValue(); // the value offered to the taglib
| String Tag2=((TagAttribute) tag).getValue(ctx);// the value offered from myapplication
| String TmpStripped=Tag.replaceAll("($\\{)|(\\#\\{)|(})", "");//just the symbol
| String tmpResolved=Value(ctx,TmpStripped);//ve=ctx.getVariableMapper().resolveVariable(TmpStripped)
| log.info("tagAttribute "+ expression+ " Tag "+Tag+"/("+TmpStripped + ") rtn "+tmpResolved );//+" tag2=" + Tag2)
|
As I call the above facelet as
| <facelet action="${mymodule.value}"> in the main thread it offers
|
| Tag="${mymodule.value}" .... and I suppose this is correct
|
As I call the above facelet through an other facelet
|
| <faceletGroup act="${mymodule.value}">
|
with FaceletGroup defined as
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
| <html>
| <ui:composition xmlns="http://www.w3.org/1999/xhtml"
| xmlns:c="http://java.sun.com/jstl/core"
| xmlns:s="http://jboss.com/products/seam/taglib"
| xmlns:ui="http://java.sun.com/jsf/facelets"
| xmlns:f="http://java.sun.com/jsf/core"
| xmlns:h="http://java.sun.com/jsf/html"
| xmlns:rich="http://richfaces.org/rich"
| xmlns:a4j="http://richfaces.org/a4j">
|
|
| <facelet action="${act}">
| </ui:composition>
| THIS TEXT WILL BE REMOVED AS WELL
| </html>
|
|
and I'm checking the taghandler xxx again
I'm checking for the obtained value using xxx as Taghandler
| String Tag=((TagAttribute) tag).getValue(); // the value offered to the taglib
| String Tag2=((TagAttribute) tag).getValue(ctx);// the value offered from myapplication
| String TmpStripped=Tag.replaceAll("($\\{)|(\\#\\{)|(})", "");//just the symbol
| String tmpResolved=Value(ctx,TmpStripped);//ve=ctx.getVariableMapper().resolveVariable(TmpStripped)
| log.info("tagAttribute "+ expression+ " Tag "+Tag+"/("+TmpStripped + ") rtn "+
|
I receive different values
| Tag = "${act}" //I receive the symbol name instead of the content
| act seams to be defined as a variable in the variable mapper
| and I can resolve Tag stripping of "${}" to the correct value
|
| "${mymodule.value}"
|
This is highly annoying since the taghandler needs to react differently
dependent on the recursive level it is. This is breaking down the value
of facelets.
Additionaly the response is dependent upon the content defined in the intermediate
facelet. as we used ${act}, the TagHanler can not know what value was choisen, it could vary
depending on the facelet grouping...
this value is ambigious since I can have the argument act and the a potential module act
defined in my application. I would not be able to distinguish
between a module called tag or an intermediate value called Tag
Is there a way to uniquely resolve the tag ?? ,
temporarly I look for ".({" in the returned value, these characters are not part
of an xml attribute, but this does not solve all the problems ....
any help apreciated
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4110482#4110482
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4110482
More information about the jboss-user
mailing list