我工作的一个JSF的portlet,至极使用最大化的portlet,定制max.tpl
javax.portlet.WindowState.MAXIMIZED
形式已经发布之后。
方法:
private void setPortletMaximized(boolean maximized) {
FacesContext facesContext = FacesContext.getCurrentInstance();
javax.faces.context.ExternalContext externalContext = facesContext.getExternalContext();
javax.portlet.PortletResponse portletResponse = (javax.portlet.PortletResponse)externalContext.getResponse();
javax.portlet.ActionResponse actionResponse = (javax.portlet.ActionResponse)portletResponse;
try {
if(maximized){
actionResponse.setWindowState(javax.portlet.WindowState.MAXIMIZED);
}else {
actionResponse.setWindowState(javax.portlet.WindowState.NORMAL);
}
} catch (WindowStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
问题是,我需要使用定制的 “max.tpl” 对于此portlet只。有没有办法从我的方法传递自定义布局?它有可能以任何方式?
我不是Liferay布局方面的专家,但您可以使用[LayoutLocalServiceUtil](https://docs.liferay.com/portal/6.2/javadocs/com/liferay/portal/)以编程方式更改布局服务/ LayoutLocalServiceUtil.html)。此外,[本论坛帖子](https://www.liferay.com/community/forums//message_boards/message/5181568)解释了如何更改所有portlet的布局,但我不认为这就是你想。 – stiemannkj1
为什么您需要portlet特定的布局模板?你能描述一下这个要求吗?布局模板是一个强大的功能,但它们很少用于定制单个portlet。 –
@TomášPiňos我需要一个带有指定功能(这种情况下是面包屑)的“max.tpl”,而其他的没有(但是具有指定功能的功能可以被其他门户使用)。现在通过在portlet中创建面包屑来解决它。这不是我们需求的最佳解决方案。 – DannyThunder