0

如果用户输入带有 action=editDocument 的 URL,我希望能够将他们重定向到相同的 URL,但使用 action=openDocument。

我假设我会使用 beforePageLoad 事件?

我怎样才能阻止他们转到 action=editDocument 并将它们重定向到 action=openDocument url?

4

2 回答 2

2

如果参数操作是“editDocument”,则以下内容将重定向回同一页面(从而阻止用户编辑文档):

<xp:this.beforePageLoad>
    <![CDATA[#{javascript:
        if (param.get("action")=="editDocument") {
            context.redirectToPage(view.getPageName())
        }
    }]]>
</xp:this.beforePageLoad>

更新:正如马克在他的回答中指出的那样,如果包含上述答案,则不会保留 documentId 参数。您可以检查是否包含 documentId 参数,然后使用该参数进行正确的重定向:

<xp:this.beforePageLoad>
    <![CDATA[#{javascript:
        if (param.get("action")=="editDocument") {
            context.redirectToPage(view.getPageName() + "?action=openDocument&documentId=" + param.get("documentId")
        }
    }]]>
</xp:this.beforePageLoad>
于 2012-06-28T20:51:07.823 回答
0

如果你有editDocument,你可能会在请求中有一个docID,在这种情况下view.getRequestUrl()view.getpageName()

于 2012-07-02T09:59:59.820 回答