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

David Geary clarity.training at GMAIL.COM
Mon May 11 12:30:15 EDT 2009


2009/5/11 Ryan Lubke <Ryan.Lubke at sun.com>

> 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.


That's what I figured, but that's not going to be obvious to the average
developer. This is a pretty serious violation of the principle of least
astonishment, and JSF has enough of those violations, IMO.

If there's no way to make it work, it should be documented, preferably in
the pdl (or is it vdl now?) docs that h:outputScript will not work when the
corresponding JS references a composite component.


david


I haven't tried it, but I wonder if the flash could be used here?
>
>>
>>
>> david
>>
>>
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jsr-314-open-mirror/attachments/20090511/e530bad9/attachment-0001.html 


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