如果使用exlib中的动态内容控件软删除url hash unid文档,则重定向到另一个页面

时间:2012-12-09 09:28:41

标签: xpages xpages-extlib dynamic-content soft-delete

我在extlib中使用动态内容控件。这个控件的一个很好的特性就是它自动从url中的documentId连接数据源,如下所示:

" ...#含量= DOC&安培;行动=使用openDocument&安培; documentId = C0282D5F7AF66787C1257ACF0028FD3A"

如果应用程序中存在unid,它会将数据源连接到它。 (除非设置了ignoreRequestParameters)

我的问题是我使用自己的软删除功能,我在文档上设置字段,如果某些用户删除它,它将从基于此字段的视图中排除。

但dyn内容控件并不关心文档是否在视图中,如果文档存在于应用程序中,它将连接到数据源

因此,如果文档被软删除,我需要找到一种不加载数据源并将用户重定向到另一个地方的方法。可能的?

请注意:unid显示在url哈希后面,因此无法使用SSJS访问。

//托马斯

2 个答案:

答案 0 :(得分:3)

您可以使用 ExtLibUtil 访问documentId。然后,您可以在 dynamicContent 组件的 beforeContentLoad 事件中重定向用户:

<xe:this.beforeContentLoad>
   <![CDATA[#{javascript:               
      var noteId = com.ibm.xsp.extlib.util.ExtLibUtil.readParameter(facesContext,"documentId");
      if( noteId === "ABCD" ){
         facesContext.getExternalContext().redirect("http://google.de");
      }
   }]]>
</xe:this.beforeContentLoad>

[而不是使用硬编码的 noteId ,你必须为你的softdelete字段进行查找]

答案 1 :(得分:2)

您可以检查其中一个XPage事件(例如beforePageLoad)中的特定“软删除”字段,然后使用context.redirectToPage("pagename")将用户重定向到另一个页面吗?