博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
liferay中如何获取实例的id和portletId
阅读量:5242 次
发布时间:2019-06-14

本文共 1259 字,大约阅读时间需要 4 分钟。

在Portlet中request分为两种renderRequet和actionRequest而portlet需要取得实例Id的时候都在renderRequest的时候才可以取到,如下例子

PortletPreferences preferences = renderRequest.getPreferences();String portletResource = ParamUtil.getString(request, "portletResource");if (Validator.isNotNull(portletResource)) {	preferences = PortletPreferencesFactoryUtil.getPortletSetup(request, portletResource);	}其中portletResource是portlet的id 然后通过PortletPreferencesFactoryUtil工具类可以取得相应的portlet配置信息。

而在actionRequest是取不到的portlet实例的id的,actionRequest只是把当前页面所有东西传进来而已,中间经过portletAcition做了处理,如果在portletAction中做取portletId是不可取的,但是在Liferay中已经提供了这样的方法可以让我们在actionRequest中取得portlet的实例Id代码如下

ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest		 .getAttribute(WebKeys.THEME_DISPLAY);		 PortletDisplay portletDisplay = themeDisplay.getPortletDisplay();		System.out.println("portletDisplay---->"+portletDisplay.getInstanceId());		System.out.println("portletDisplay getId---->"+portletDisplay.getId());		System.out.println("portletDisplay getPortletName---->"+portletDisplay.getPortletName());

这样就可以取到我们需要的对应的portlet实例id了

 

其中WebKeys.THEME_DISPLAY是Liferay中里面的接口常量 对应的名字是 THEME_DISPLAY

 

这篇文章是转载人家的文章,文章的出处是http://www.cnblogs.com/edwardlauxh/archive/2010/03/26/1918614.html

转载于:https://www.cnblogs.com/airycode/p/4813850.html

你可能感兴趣的文章
JavaScript可否多线程? 深入理解JavaScript定时机制
查看>>
IOS基础学习
查看>>
PHP 导出 Excell
查看>>
Java基础教程——网络基础知识
查看>>
Kruskal基础最小生成树
查看>>
ubuntu 14.04 安装搜狗拼音输入法
查看>>
浅谈算法和数据结构: 一 栈和队列
查看>>
Java内部类详解
查看>>
【hdu 1429】胜利大逃亡(续)
查看>>
图论-次短路求法
查看>>
What's New for Visual C# 6.0
查看>>
ExtJs学习笔记之ComboBox组件
查看>>
关于收费软件
查看>>
getopt_long
查看>>
TensorFlow MNIST CNN 代码
查看>>
javascript之Style物
查看>>
JSON跨域解决方案收集
查看>>
SSH框架整合总结
查看>>
图的深度优先遍历
查看>>
C# 之 提高WebService性能大数据量网络传输处理
查看>>