[ 
https://issues.apache.org/jira/browse/TOBAGO-807?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12769142#action_12769142
 ] 

Udo Schnurpfeil commented on TOBAGO-807:
----------------------------------------

hmmm, strange, I've tested it this way:
 1. apply your patch in 1.0.24-SNAPSHOT
 2. add a script-tag deeper than child of tc:page in helloWorld.xml of 
tobago-example-facelets
     replace
       <tc:cell/>
    with 
       <tc:cell>
         <tc:script>
           alert('Hello World');
         </tc:script>
       </tc:cell>

 3. mvn jetty:run-exploded -> Browse to the webapp
 got an Exception: The ScriptTag cannot find UIPage. Check you have defined the 
ScriptTag inside of the PageTag!
this is the text from the modified code.

I took a look with the debugger, ant I can see, that parent.getParent() returns 
null

> Allow script tag not only at page level
> ---------------------------------------
>
>                 Key: TOBAGO-807
>                 URL: https://issues.apache.org/jira/browse/TOBAGO-807
>             Project: MyFaces Tobago
>          Issue Type: Improvement
>          Components: Facelets
>    Affects Versions: 1.0.23
>         Environment: Facelets, all
>            Reporter: Helmut Swaczinna
>            Assignee: Udo Schnurpfeil
>
> With jsp you can put a tc:script in any other tag, with facelets only in 
> tc:page. This is a serious restriction when you define custom facelet tags.
> To solve this restriction I modified the ScriptHandler class:
>   public void apply(FaceletContext faceletContext, UIComponent parent)
>       throws IOException, FacesException, ELException {
>     UIPage page = ComponentUtil.findPage(faceletContext.getFacesContext(), 
> parent);
>     if (page != null) {
> ...
>     } else {
>       throw new TagException(tag, "The ScriptTag cannot find UIPage. "
>           + "Check you have defined the ScriptTag inside of the PageTag!");
>     }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to