| OS | Windows Vista Home Premium 32bit |
| Java | 1.6.0.14 |
| IDE | NetBEANS 6.5.1 |
| APPサーバ | GlassFish v3 Preview |
| Portalサーバ | LIFERAY 5.2.3 |
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee <a href="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd</a>">
<context-param>
<param-name>com.sun.faces.verifyObjects</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>com.sun.faces.validateXml</param-name>
<param-value>true</param-value>
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<security-constraint>
<web-resource-collection>
<web-resource-name>Page Sources</web-resource-name>
<url-pattern>*.jsp</url-pattern>
<url-pattern>*.jspx</url-pattern>
<url-pattern>*.xhtml</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>nobody</role-name>
</auth-constraint>
</security-constraint>
<security-role>
<role-name>nobody</role-name>
</security-role>
<welcome-file-list>
<welcome-file>faces/welcomeJSF.jsp</welcome-file>
</welcome-file-list>
</web-app>
<portlet-app version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd <a href="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd">http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd</a>">
<portlet>
<portlet-name>SampleSender</portlet-name>
<display-name>Sample Event Sender</display-name>
<portlet-class>com.sun.faces.portlet.FacesPortlet</portlet-class>
<init-param>
<name>com.sun.faces.portlet.INIT_VIEW</name>
<value>/welcomeJSF.jsp</value>
</init-param>
<supports>
<mime-type>text/html</mime-type>
</supports>
<portlet-info>
<title></title>
<short-title>Look Friends List</short-title>
<keywords>Look Friends List</keywords> </portlet-info>
<security-role-ref>
<role-name>administrator</role-name>
</security-role-ref>
<security-role-ref>
<role-name>guest</role-name>
</security-role-ref>
<security-role-ref>
<role-name>power-user</role-name>
</security-role-ref>
<security-role-ref>
<role-name>user</role-name>
</security-role-ref>
<!-- ポートレット2.0用XML名前空間定義 -->
<supported-publishing-event>
<qname>EventKeyword</qname>
</supported-publishing-event>
</portlet>
<!-- ポートレット2.0用イベント定義 -->
<event-definition>
<qname>EventKeyword</qname>
<value-type>java.lang.String</value-type>
</event-definition>
</portlet-app>
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%><%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%--
This file is an entry point for JavaServer Faces application.
--%>
<f:view>
<h:form id="searchForm">
<p>文字列を入力してください:<h:inputtext id="word" value="#{SendSample.msgStr}"></h:inputtext></p>
<p><h:commandbutton id="button1" value="Button1" actionlistener="#{SendSample.moveDetailDisp}"></h:commandbutton></p>
</h:form>
</f:view>
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package net.takexoff.sammple;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.xml.namespace.QName;
/**
*
* @author go
*/
public class SendSample {
private String msgStr = "";
public String getMsgStr() {
return msgStr;
}
public void setMsgStr(String msgStr) {
this.msgStr = msgStr;
}
public void moveDetailDisp(ActionEvent event){
FacesContext context = null;
ExternalContext excnt = null;
QName qname = null;
ActionRequest aRequest = null;
ActionResponse aResponse = null;
try {
context = FacesContext.getCurrentInstance();
excnt = context.getExternalContext();
aRequest = (ActionRequest) excnt.getRequest();
aResponse = (ActionResponse) excnt.getResponse();
qname = new QName("EventKeyword");
aResponse.setEvent(qname, msgStr);
} catch (Exception e){
e.printStackTrace();
}
}
}
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee <a href="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd</a>">
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
<portlet-app xmlns='<a href="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd">http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd</a>' xmlns:xsi='<a href="http://www.w3.org/2001/XMLSchema-instance">http://www.w3.org/2001/XMLSchema-instance</a>' xsi:schemaLocation='<a href="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd">http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd</a> <a href="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd">http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd</a>' version='2.0'>
<portlet>
<portlet-name>SampleReceive</portlet-name>
<display-name>Sample Event Sender</display-name>
<portlet-class>net.takexoff.sample.ReceiveSample</portlet-class>
<expiration-cache>0</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
</supports>
<portlet-info>
<title></title>
</portlet-info>
<security-role-ref>
<role-name>administrator</role-name>
</security-role-ref>
<security-role-ref>
<role-name>guest</role-name>
</security-role-ref>
<security-role-ref>
<role-name>power-user</role-name>
</security-role-ref>
<security-role-ref>
<role-name>user</role-name>
</security-role-ref>
<supported-processing-event>
<qname>EventKeyword</qname>
</supported-processing-event>
</portlet>
<event-definition>
<qname>EventKeyword</qname>
<value-type>java.lang.String</value-type>
</event-definition>
</portlet-app>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0" xmlns:portlet="http://java.sun.com/portlet">
<jsp:directive.page language="java" contenttype="text/html; charset=UTF-8" pageencoding="UTF-8"></jsp:directive.page>
<portlet:actionurl var="viewUrl" portletmode="view"></portlet:actionurl>
イベントで受信した文字列 : ${msgStr}
</jsp:root>
package net.takexoff.sample;
import javax.portlet.GenericPortlet;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import javax.portlet.PortletException;
import java.io.IOException;
import java.io.PrintWriter;
import javax.portlet.PortletConfig;
import javax.portlet.PortletContext;
import javax.portlet.PortletRequestDispatcher;
/**
* Receive Portlet Class
*/
public class ReceiveSample extends GenericPortlet {
private PortletContext portletContext;
private String msgStr;
public void init(PortletConfig config) throws PortletException {
super.init(config);
portletContext = config.getPortletContext();
}
public void doView(RenderRequest request,RenderResponse response) throws PortletException,IOException {
//Uncomment below lines to see the output
response.setContentType("text/html");
PrintWriter writer = response.getWriter();
//writer.println("View Mode");
msgStr = request.getParameter("recieveParam");
request.setAttribute("msgStr" , msgStr);
// ページの出力をJSPファイルにディスパッチ
try {
PortletRequestDispatcher dispatcher = portletContext.getRequestDispatcher("/recieve.jsp");
dispatcher.include(request, response);
} catch (IOException e) {
e.printStackTrace();
}
}
@javax.portlet.ProcessEvent(qname = "EventKeyword")
public void processEvent(javax.portlet.EventRequest request, javax.portlet.EventResponse response) throws javax.portlet.PortletException, java.io.IOException {
javax.portlet.Event event = request.getEvent();
java.lang.String value = (java.lang.String) event.getValue();
response.setRenderParameter("recieveParam",value);
// request.getPortletSession().setAttribute("key", value);
}
}
この記事のトラックバックURI
09月03日 LIFERAYのVelocityでカスタム属性を取得&更新
08月31日 LIFERAYのVelocityで現在時刻を取得する
08月13日 Liferayの「Webコンテンツ」で任意の項目を表示する 応用編
08月11日 Liferayのポートレット「Webコンテンツ」で任意の項目を表示する 後編
08月07日 Liferayのポートレット「Webコンテンツ」で任意の項目を表示する 前編
テイクオフは、ソロアルピニスト
栗城史多さんを応援しています。