2 Replies Latest reply on Mar 4, 2006 1:06 AM by aron.gombas

    How-To add javascript libraries to a portlet view.

    kjc5664

      I'm trying to use the dojo AJAX toolkit within a portlet view.jsp to no avail.
      Can anyone point out what the correct method is. Here is my view.jsp.
      None of the dojo widgets are rendered. Just plain HTML.
      dojo.js is in the same directory as view.jsp

      Thanks in advance.

      <%@ page contentType="text/html" language="java" %>
      <%@ taglib prefix="f" uri="http://java.sun.com/jsf/core" %>
      <%@ taglib prefix="h" uri="http://java.sun.com/jsf/html" %>
      <%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %>
      <%@ page session="false" %>




      <script type="text/javascript">
       var djConfig = {
       isDebug: true
       };
       </script>
      
      <script type="text/javascript" src="dojo.js"></script>
      
      <script language="JavaScript" type="text/javascript">
      
       dojo.require("dojo.widget.LayoutPane");
      
       dojo.require("dojo.widget.FloatingPane");
      
       dojo.require("dojo.widget.ContentPane");
      
       dojo.require("dojo.widget.SplitPane");
      
       dojo.require("dojo.widget.ColorPalette");
      
       dojo.require("dojo.widget.DatePicker");
      
       dojo.require("dojo.widget.Tree");
      
       dojo.require("dojo.widget.Checkbox");
      
       dojo.require("dojo.widget.TabPane");
      
       dojo.require("dojo.widget.Button2");
      
       dojo.require("dojo.widget.ResizeHandle");
       dojo.require("dojo.event.*"); // sophisticated AOP event handling
       dojo.require("dojo.io.*"); // for Ajax requests
       dojo.require("dojo.storage.*"); // a persistent local data cache
       dojo.require("dojo.json"); // serialization to JSON
       dojo.require("dojo.dnd.*"); // drag-and-drop
       dojo.require("dojo.fx.*"); // animations and eye candy
       dojo.require("dojo.widget.Editor"); // stable, portable HTML WYSIWYG
      
       dojo.hostenv.writeIncludes();
      
      </script>
      
      
      
      
      


        • 1. Re: How-To add javascript libraries to a portlet view.

          the easiest way (I believe) is to use the declarative injection of header content. In this case you can declare the js file to be included as link in the head tag, by adding this to your jboss-portlet.xml descriptor :

           <portlet>
           <portlet-name>MyAJAXPortlet</portlet-name>
           <header-content>
           <link type="text/javascript" href="/portlet-resources/dojo.js" />
           </header-content>
           </portlet>
          


          The only limitation is that you need to use the 'generic' layout , or any other layout that features the <p:headerContent /> jsp tag


          • 2. Re: How-To add javascript libraries to a portlet view.
            aron.gombas

             

            "mholzner" wrote:
            the easiest way (I believe) is to use the declarative injection of header content.

            I'd not suggest this, as it wouldn't be portable.

            I think the problem with your original approach is that URL's are probably wrong.
            This one is working for me perfectly in Kosmos:
            <script src="<c:url value="/pages/scripts/scriptaculous/prototype.js"/>" language="javascript"></script>

            An easy test that you can do is to use a JSP @include to include the JS. If you can see its content in the browser when checking the page source, then the URL is fine.