[jboss-user] [JBoss Portal] - Re: Missing windowId for portlets events test
rpa_rio
do-not-reply at jboss.com
Tue Mar 4 12:35:49 EST 2008
I wrote two pages publisher-view.jsp and listener-view.jsp, in publisher-view.jsp I used portlet tags to generate the actionURL, exactly like we have below:
| <%@ page contentType="text/html"%>
| <%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %>
| <portlet:defineObjects />
| <portlet:actionURL var="submitUrl" portletMode="view" />
| <div>
| <br />
| <br />
| <center>
| <form action="<%=submitUrl%>" method="post">
| <label for="input">Type your text:</label>
| <input type="text" id="input" name="input" value="" />
| <input type="submit" value="Send" />
| </form>
| </center>
| </div>
|
When the submit button is clicked the processAction on PublisherPortlet must be invoked and then the event is set:
| package br.eti.faces.portlet.publisher;
|
| import java.io.IOException;
|
| import javax.portlet.ActionRequest;
| import javax.portlet.ActionResponse;
| import javax.portlet.GenericPortlet;
| import javax.portlet.PortletContext;
| import javax.portlet.PortletException;
| import javax.portlet.PortletRequestDispatcher;
| import javax.portlet.RenderRequest;
| import javax.portlet.RenderResponse;
|
| import br.eti.faces.portlet.events.Literal;
|
| public class PublisherPortlet extends GenericPortlet {
|
| @Override
| protected void doView(RenderRequest renderRequest,
| RenderResponse renderResponse) throws PortletException, IOException {
|
| renderResponse.setContentType("text/html");
|
| PortletContext ctx = getPortletContext();
| PortletRequestDispatcher dispatcher = ctx
| .getRequestDispatcher("/publisher-view.jsp");
|
| dispatcher.include(renderRequest, renderResponse);
| }
|
| @Override
| public void processAction(ActionRequest actionRequest,
| ActionResponse actionResponse) throws PortletException, IOException {
| String value = actionRequest.getParameter("input");
| actionResponse.setEvent(Literal.QNAME, new Literal(value));
| }
|
| }
|
I defined this class as my event class:
| package br.eti.faces.portlet.events;
|
| import java.io.Serializable;
|
| import javax.xml.bind.annotation.XmlRootElement;
| import javax.xml.namespace.QName;
|
| @XmlRootElement
| public class Literal implements Serializable {
|
| public static final QName QNAME = new QName("urn:jboss:portal:samples:event" , "Literal");
|
| private String data;
|
| public Literal(String data) {
| this.data = data;
| }
|
| public String getData() {
| return data;
| }
|
| public void setData(String data) {
| this.data = data;
| }
| }
|
Finally, I registered both (porlet and event) on portlet.xml:
| <?xml version="1.0" encoding="UTF-8"?>
| <portlet-app
| xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
| xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"
| id="portlet-event" version="2.0">
|
| <event-definition>
| <qname xmlns:jbp="urn:jboss:portal:samples:event">jbp:Literal</qname>
| <value-type>br.eti.faces.portlet.events.Literal</value-type>
| </event-definition>
|
| <portlet id="publisher">
| <init-param>
| <name>default-view</name>
| <value>/publisher-view.jsp</value>
| </init-param>
| <init-param>
| <name>ViewPage</name>
| <value>/publisher-view.jsp</value>
| </init-param>
| <description>Event Publisher JSP Portlet</description>
| <portlet-name>publisher</portlet-name>
| <display-name>Event Publisher JSP Portlet</display-name>
| <portlet-class>
| br.eti.faces.portlet.publisher.PublisherPortlet
| </portlet-class>
| <supports>
| <mime-type>text/html</mime-type>
| <portlet-mode>VIEW</portlet-mode>
| </supports>
| <portlet-info>
| <title>Event Publisher JSP Portlet</title>
| <short-title>Event Publisher JSP Portlet</short-title>
| </portlet-info>
|
| <supported-publishing-event>
| <qname xmlns:jbp="urn:jboss:portal:samples:event">jbp:Literal</qname>
| </supported-publishing-event>
| </portlet>
|
| <portlet id="listener">
| <init-param>
| <name>default-view</name>
| <value>/listener-view.jsp</value>
| </init-param>
| <init-param>
| <name>ViewPage</name>
| <value>/listener-view.jsp</value>
| </init-param>
| <description>Event Listener JSP Portlet</description>
| <portlet-name>listener</portlet-name>
| <display-name>Event Listener JSP Portlet</display-name>
| <portlet-class>
| br.eti.faces.portlet.listener.ListenerPortlet
| </portlet-class>
| <supports>
| <mime-type>text/html</mime-type>
| <portlet-mode>VIEW</portlet-mode>
| </supports>
| <portlet-info>
| <title>Event Listener JSP Portlet</title>
| <short-title>Event Listener JSP Portlet</short-title>
| </portlet-info>
|
| <supported-processing-event>
| <qname xmlns:jbp="urn:jboss:portal:samples:event">jbp:Literal</qname>
| </supported-processing-event>
| </portlet>
| </portlet-app>
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4134002#4134002
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4134002
More information about the jboss-user
mailing list