[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