如果未找到内容,则隐藏 Web 内容查看器 JSR 286 Portlet

Hiding a Web Content Viewer JSR 286 Portlet if no content is found

我在我的门户页面上配置了一个指向内容项的 JSR 286 portlet。内容项具有到期日期。内容过期后,用户会看到默认警告消息,提示未找到所选站点区域的内容。

我希望如果所选站点区域中没有内容而不是显示警告,则不应呈现此 portlet。

你有几个选择 最简单的方法是创建一个自定义皮肤,根据其内部内容显示或不显示。只需创建自己的皮肤即可 return 没什么

您的其他选择包括使用 servlet 过滤器或其他机制将其从响应中删除,或者在开始呈现后将其从页面中删除

使用设置为仅显示 portlet 的 1 项的菜单组件。然后创建第二个内容项,它有一个演示模板,内容如下:

<div class="emptyPortlet" style="display:none;"> This is an empty template. </div>

*如果您不想在标签中声明样式,您也可以在 CSS 文件中指定 .emptyPortlet { display: none;}

在您的其他项目之前发布它,然后将菜单组件设置为根据发布日期显示。这样,当您创建另一个要显示的项目(使用不同的演示模板)时,它将具有更新的发布日期并将显示在页面上。但是,一旦它过期,唯一剩下要找到的已发布项目将是这个空白项目,并且 "display: none" 它将基本上对用户隐藏整个 portlet。