【发布时间】:2016-07-22 12:11:21
【问题描述】:
我在我的门户页面上配置了一个指向内容项的 JSR 286 portlet。内容项具有到期日期。内容过期后,用户会看到默认警告消息,提示未找到所选站点区域的内容。
如果所选站点区域中没有内容,我希望不呈现此 Portlet,而不是显示警告。
【问题讨论】:
标签: websphere-portal wcm
我在我的门户页面上配置了一个指向内容项的 JSR 286 portlet。内容项具有到期日期。内容过期后,用户会看到默认警告消息,提示未找到所选站点区域的内容。
如果所选站点区域中没有内容,我希望不呈现此 Portlet,而不是显示警告。
【问题讨论】:
标签: websphere-portal wcm
使用设置为只为您的 portlet 显示 1 个项目的菜单组件。然后创建第二个内容项,其中包含一个演示模板,上面写着这样的内容:
<div class="emptyPortlet" style="display:none;"> This is an empty template. </div>
*如果你不想在标签中声明样式,你也可以在你的 CSS 文件中指定.emptyPortlet { display: none;}。
在您的其他项目之前发布此内容,然后将菜单组件设置为根据发布日期显示。这样,当您创建要显示的另一个项目(使用不同的演示模板)时,它将具有更新的发布日期并显示在页面上。但是,一旦过期,唯一要查找的已发布项目将是这个空白项目,并且使用“显示:无”它实际上将对用户隐藏整个 portlet。
【讨论】:
你有几个选择 最简单的方法是创建一个自定义皮肤,根据其内部内容显示或不显示。只需创建自己的皮肤,什么都不会返回
您的其他选项包括使用 servlet 过滤器或其他机制将其从响应中删除,或者在您开始渲染后将其从页面中删除
【讨论】: