Estes dias tivemos que realizar uma prova de conceito se o DWR rodava no JBoss Portal. A minha primeira impressão era que seria possível, mas em primeira instância a referência aos JavaScripts deveria ser feita nos templates, porém devido a flexibilidade no JBP toda referência fica nas próprias Páginas enviadas para o cliente pelo o Portlet.
Veja o exemplo da chamada no Html:
HTML:
-
<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %>
-
-
<% String contextPath = renderResponse.encodeURL(renderRequest.getContextPath()); %>
-
-
script type="text/javascript">
-
-
script type="text/javascript"><%=contextPath%>/dwr/util.js
Sendo assim, a referência é buscada pelo objeto renderResponse, retornando assim o local de execução do contexto http do jboss portal.
O código do Portlet é mais ou menos assim:
JAVA:
-
package org.jboss.portal.samples.dwr;
-
-
import java.io.IOException;
-
import javax.portlet.GenericPortlet;
-
import javax.portlet.PortletException;
-
import javax.portlet.PortletRequestDispatcher;
-
import javax.portlet.RenderRequest;
-
import javax.portlet.RenderResponse;
-
public class DWRPortlet extends GenericPortlet {
-
@Override
-
public void doView
(RenderRequest request, RenderResponse response
) throws PortletException,
IOException { |
-
response.setContentType("text/html");
-
PortletRequestDispatcher prd = getPortletContext().getRequestDispatcher ("/WEB-INF/dwr/view.jsp");
-
-
prd.include(request, response); }
-
}
Veja o resultado na seguinte imagem: