我在门户页面上配置了一个指向内容项的JSR 286 portlet。内容项目具有到期日期。内容过期后,用户会看到默认警告消息,指出未找到所选站点区域的内容。
我希望如果所选站点区域中没有内容而不是显示警告,则不应呈现此portlet。
答案 0 :(得分:0)
您有几个选择 最简单的方法是创建一个显示或不显示的自定义皮肤,具体取决于它的内部内容。只是创建自己的皮肤不返回任何东西
您的其他选项包括使用servlet过滤器或其他一些机制将其从响应中删除,或者在开始呈现后从页面中剥离
答案 1 :(得分:0)
使用一个菜单组件,该菜单组件设置为仅对portlet显示1个项目。然后创建另一个具有演示模板的内容项,该演示模板只显示以下内容:
<div class="emptyPortlet" style="display:none;"> This is an empty template. </div>
**如果您不想在标记中声明样式,也可以在CSS文件中指定.emptyPortlet { display: none;}
。
在其他项目之前发布此项目,然后将“菜单组件”设置为基于“发布日期”显示。这样,当您创建另一个要显示的项目(使用另一个Presentation Template)时,它的发布日期将更近,并显示在页面上。但是,一旦过期,剩下的唯一找到的已发布项目将是该空白项目,并且显示为“ none”,实际上将向用户隐藏整个portlet。