Uploaded image for project: 'MyFaces Core'
  1. MyFaces Core
  2. MYFACES-3610

Dynamically created ClientBehaviors do not call addComponentResource

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Not A Problem
    • 2.1.7
    • None
    • None
    • None

    Description

      I'm creating this as a JIRA issue so that I can attach a test case. However it behaves the same on Mojarra as on MyFaces so possibly it is 'by design'?

      My question is this:

      • If I dynamically create UIComponents using Application.createComponent, I find they automatically add any dependent resources (JS/CSS) to the h:head. This is fantastic.
      • If I dynamically create ClientBehaviours using Application.createBehavior, no dependent resources get added.

      Am I supposed to add such resources manually? For example:

      UIOutput js = new UIOutput();
      js.setRendererType("javax.faces.resource.Script");
      js.getAttributes().put("library", "mylibrary");
      js.getAttributes().put("name", "bar.js");

      FacesContext context = FacesContext.getCurrentInstance();
      context.getViewRoot().addComponentResource(context, js, "head");

      If so, how am I supposed to know what they are? For example, if I am dynamically adding an AjaxBehavior the exact name of the JavaScript file depends on which JSF implementation I am using.

      Attachments

        1. DynamicBehaviourTest.zip
          3.73 MB
          Kennard Consulting

        Activity

          People

            Unassigned Unassigned
            kennardconsulting Kennard Consulting
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: