0

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

“...#content=doc&action=openDocument&documentId=C0282D5F7AF66787C1257ACF0028FD3A”

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

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

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

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

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

//托马斯

4

2 回答 2

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 ]

于 2012-12-11T10:53:18.737 回答
2

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

于 2012-12-09T12:06:19.797 回答