[jsr-314-open] h:outputScript doesn't work inside composite components

Ryan Lubke Ryan.Lubke at SUN.COM
Mon May 11 10:54:12 EDT 2009


On 5/11/09 7:40 AM, David Geary wrote:
> I have a login composite component that looks like this:
>
> <composite:interface>...</composite:interface>
> ...
> <composite:implementation>
> <script type="text/javascript">
>                 function checkForm(form) {
>                   var name = form['#{cc.clientId}:name'].value;
>                   var pwd = form['#{cc.clientId}:password'].value;
>
>                   if (name == "" || pwd == "") {
>                     alert("Please enter name and password.");
>                     return false;
>                   }
>                   return true;
>                 }
> </script>
>   ...
> </composite:implementation>
>
> I have components with "name" and "password" component ids in a form 
> in the ... part of the implementation. That works fine.
>
> However, if I pull the JS out into its own file, and do this:
>
> <composite:interface>...</composite:interface>
> ...
> <composite:implementation>
> <h:outputScript library="components/login" name="login.js"/>
>   ...
> </composite:implementation>
>
> h:outputScript puts the JS in the page, but the JS no longer works 
> because the expression cc.clientId evaluates to an empty string.
>
> That's a bug, is it not?
No, I don't believe it is.  The javascript file will be served in a 
separate request.  There is no way to determine the
component at that time.

I haven't tried it, but I wonder if the flash could be used here?
>
>
> david
>
>
>




More information about the jsr-314-open-mirror mailing list