Liferay 用PortletSession 实现不同Liferay之间通讯
第一步: 写好PortletSession A
1.1 这是PortletSession A 的jsp页面代码
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@ page contentType="text/html; charset=utf-8" %>
<portlet:defineObjects />两个Portlet 用 Session 进行通讯 </br>这是PortSession A</br><portlet:actionURL name="sendParamaterAction" var="sendParamater"></portlet:actionURL><form action="<%=sendParamater %>" method="post">username : <input type="text" name="username" /> </br><input type="submit" value="submit"></form>
对应的页面效果如下:
1.2 PortletSession A 的java代码
package com.test;import java.io.IOException;import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.PortletException;
import javax.portlet.PortletSession;
import javax.portlet.ProcessAction;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;import com.liferay.util.bridges.mvc.MVCPortlet;/*** Portlet implementation class PorletSession*/
public class PorletSession extends MVCPortlet {@ProcessAction(name="sendParamaterAction")public void sendParamate(ActionRequest actionRequest,ActionResponse actionResponse) throws IOException, PortletException{String username = actionRequest.getParameter("username");System.out.println("sendParamaterAction username = " + username);actionRequest.getPortletSession().setAttribute("username", username,PortletSession.APPLICATION_SCOPE);<pre name="code" class="html">PortletSession.APPLICATION_SCOPE
getPortletSession
} }
第二步 写好Portletsession B代码
2.1 是Portletsession B的jsp页面代码
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@ page contentType="text/html; charset=utf-8" %>
<portlet:defineObjects />两个Portlet 用 Session 进行通讯 </br>这是PortSession B</br>从名称为 portletsession的Portlet 传入的username值:${username}
对应的页面效果如下:
2.2 PortletSession B的java代码
package com.test;import java.io.IOException;import javax.portlet.PortletException;
import javax.portlet.PortletSession;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;import com.liferay.util.bridges.mvc.MVCPortlet;/*** Portlet implementation class PorletSessionB*/
public class PorletSessionB extends MVCPortlet {@Overridepublic void doView(RenderRequest renderRequest,RenderResponse renderResponse) throws IOException, PortletException {String username = (String )renderRequest.getPortletSession().getAttribute("username",PortletSession.APPLICATION_SCOPE);System.out.println("PorletSessionB doView username = " + username);renderRequest.setAttribute("username", username);super.doView(renderRequest, renderResponse);}
}
实现的效果如下:
在portletsession A的表单中输入sdfsdf提交后,Portlet session b可以显示出输入的值
Liferay 用PortletSession 实现不同Liferay之间通讯相关推荐
- Android--Otto事件总线 -- 组件之间通讯框架使用 --模式解析
前言:Otto事件总线 -- 组件之间通讯框架 对于之前的情况activity之间或者fragment之间等跳转传值一般都是用bundle.intent等,从activityA --- activit ...
- bus.js非父子组件之间通讯
bus.js非父子组件之间通讯 区别: bus.js就是一个公共的vue实例专门处理emit和on事件. vuex.js是做全局数据处理的,是指限定了对公共数据的使用处理方法,统一管控 vue中非父子 ...
- 如何在窗体之间通讯的几种方法 ? VB.NET方案
在面向过程的程序中,我们可以通过窗体名来访问其他窗体中控件或者数据,但是在面向过程中却稍有不同,面向过程显示了它的优点. 假设一个Window解决方案中,有两个窗体Form1和Form2,Form1窗 ...
- ICE学习之C# Java之间通讯
进alibaba以来一直听说我们有部分产品之间的通讯是采用ICE架构的,它是一种简洁的分布式网络中间件.但是由于项目紧张一直没有时间研究,这两天终于有时间研究一把(而且据老大说我们今年要对旺旺提供给内 ...
- ABB机器人VGT文件_ABB机器人与焊机之间通讯方式
想知道多更多资料请关注东莞机器人之家公众号. 1.ABB机器人与焊机之间通讯方式 A. I/O+模拟量的通讯方式:最常用的机器人和焊机通讯方式之一,通过DI/DO控制起弧收弧,通过AO信号控制焊机的电 ...
- 关于通过webclient和JSON格式报文与服务器之间通讯的解决方法和遇到的难题
关于通过webclient和JSON格式报文与服务器之间通讯的解决方法和遇到的难题 参考文章: (1)关于通过webclient和JSON格式报文与服务器之间通讯的解决方法和遇到的难题 (2)http ...
- winpcapp配置c++网口通讯_PLC通讯智能网关,不用编程,实现西门子与罗克韦尔(AB)、三菱等PLC之间通讯...
智能网关IGT-DSER支持多点对多点的设置之间通讯,支持以太网,串口设备混合数据交换:无需编程开发,只须配置数据的起始地址和数量即可,支持热插拔,断电重启后自恢复运行,在实际的工程项目中应用方便. ...
- 分布式子系统之间通讯
问题: java 分布式子系统之间通讯采用何种技术实现? 个人思考: 目前个人掌握大方向有四种: (1)基于RPC实现,例webservice .java平台的rmi等,据了解性能不是很好. (2)基 ...
- AB-PLC之间通讯
AB-PLC之间通讯 AB-PLC之间进行通讯比较常用的方法有两种: 第一种:使用生产者/消费者,通过设置数据类型方式进行通信 第二种:使用MSG指令,进行通信 两种通讯方式有什么区别? 在生产者/消 ...
最新文章
- Linux下的进程概论与编程二(进程控制)
- java脏字过滤_脏字过滤
- @Test 运行 Method xxx should be void、Method xxx should have no parameters
- db2数据库还原找不到文件_db2数据库还原
- 泸州职称计算机,2018年11月四川泸州职称计算机考试10月8日开始报名
- SparkSQL入门
- 模块化之SeaJS(一)
- python与中文的那点事
- oracle 伪造ip连接,Oracle做ip连接限制
- 微信短信验证码注意事项(tp3.2-腾讯云)
- IDEA配置TeaVM插件
- 高级商务办公软件应用【12】
- uac2+android,iBasso UAC
- php设为首页代码,JavaScript
- brew 特别慢 解决方案
- C语言程序设计-用英文单词模拟数学计算系统
- opengl 着色器
- Linux- rsync企业级实战
- Log4j2写日志的艺术
- C++中fstream 的使用一
热门文章
- CodeBlocks报错原因分析:找不到编译器 / th_en_US.idx' not found! 提示
- 可视化运行Python的神器Jupyter Notebook
- java中CyclicBarrier的使用
- SpringBoot的@SpringBootApplication注解和其他几个注解
- Bigtable 论文翻译
- 【已解决】Exception in thread “main“ java.lang.NullPointerException
- 这代码她不美吗?——试题 基础练习 十六进制转八进制
- 云服务器转租赁协议,关于云服务器的租赁协议
- 数据库mysql建立索引_为mysql数据库建立索引
- 在U盘上运行Win8!使用 Windows To Go 制作便携的 Win8 U盘/移动硬盘教程 (视频)