Liferay导航钩

时间:2014-09-03 13:19:27

标签: java liferay liferay-6 liferay-theme

是否可以在Liferay导航中创建一个钩子?我想创建一个与网站更改进行交互。例如,在站点“A”中,所有portlet都连接到数据库架构“A”,但在站点“B”中,相同的portlet连接到架构“B”。

我目前正在使用PhaseListener从ThemeDisplay获取网站并将其设置为全局会话变量 - 例如:

//get the theme display from the current request
ThemeDisplay theme = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);
theme.getSiteGroupName();  //connect to datastore based on this value

我觉得根据网站导航进行此更改会更有效,以避免将此侦听器放在所有portlet上。

思考&评论

1 个答案:

答案 0 :(得分:0)

没有。连接不是按需进行的,它们来自连接池。因此,当您使用A时,已在池中打开指向模式A的连接。当您尝试转到B时,池中的连接仍然良好且开放且可用,因此它们会被拉到您的位置仍然会使用B。

Liferay并不能很好地处理它使用的任何数据的模式之间的切换,这种事情可能会对您的环境造成严重破坏。