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

Xpages 如果使用exlib中的动态内容控件软删除url哈希unid文档,则重定向到另一个页面,xpages,xpages-extlib,dynamic-content,soft-delete,Xpages,Xpages Extlib,Dynamic Content,Soft Delete,我在extlib中使用动态内容控件。此控件的一个很好的特性是,它自动从url中的documentId连接数据源,如下所示: “…#content=doc&action=openDocument&documentId=C0282D5F7AF66787C1257ACF0028FD3A” 如果应用程序中存在unid,它会将数据源连接到它。(除非设置了ignoreRequestParameters) 我的问题是,我正在使用自己的软删除功能,在该功能中,我在文档上设置了一个字段,如果某些用户删除了它,它将

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

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

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

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

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

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

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


//Thomas

您是否可以在其中一个XPage事件(例如
beforePageLoad
)中检查特定的“软删除”字段,然后使用
上下文。redirectToPage(“pagename”)
将用户重定向到另一个页面?

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

您可以使用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>


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

您可以使用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>


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

不确定文档的unid是否在url中,并且在ssjs中不可访问。url可能来自电子邮件或用户书签不确定文档的unid是否在url中,并且在ssjs中不可访问。url可能来自电子邮件或用户书签如何初始化数据源?如果您知道unide、 你将能够重定向。你如何初始化数据源?如果你知道unid,你将能够重定向。太棒了,我不知道我能做到。你刚刚挽救了我的一天。事实上,我现在可以使用ssjs读取哈希参数真是太棒了。太棒了,我不知道我能做到。你刚刚挽救了我的一天。事实上,我现在可以读取了使用ssjs的散列参数非常棒。