我正在开发一个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“。有没有办法从我的方法中传递一个自定义布局?有没有可能呢?
发布于 2015-10-20 20:00:05
因此,您只想显示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一个放在另一个的上方/旁边还不够吗?
https://stackoverflow.com/questions/33121702
复制相似问题