我正在使用一个JSF portlet,它使用
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();
}
}
问题是我只需要为此portlet使用自定义“max.tpl”。有没有办法从我的方法传递自定义布局?有可能吗?
答案 0 :(得分:0)
因此,您只想为portlet的某些实例显示面包屑。正确?
在JSP或facelets中,您可能使用类似于此代码段的内容:
<%@taglib prefix="liferay-ui" uri="http://liferay.com/tld/ui" %>
<liferay-ui:breadcrumb/>
让您的portlet可配置
一个简单的实现是使您的portlet可配置。管理员将能够配置是否显示每个portlet实例的面包屑。有关详细信息,请参阅Implementing Configurable Portlet Preferences。
或...使用嵌套Portlet Portlet
您还可以使用Nested Portlets Portlet来实现可变性。将嵌套Portlet Portlet放置到页面,使用合适的布局模板(1列,2列,...),并将Breadcrumbs portlet放在portlet的上方/旁边,就在您需要的位置。
----------------------
| Breadcrumbs portlet |
|----------------------|
| Your portlet |
----------------------
我个人非常喜欢嵌套Portlet Portlet - 但仅限于很小一部分问题。通常我更喜欢其他解决方案,例如使portlet可配置。
,然后... 强>
根据您的要求 - 您可能根本不需要嵌套。仅仅将portlet放在另一个上面/旁边是不够的?