ユーザーが action=editDocument で URL を入力した場合、同じ URL にリダイレクトできるようにしたいと考えていますが、action=openDocument です。
beforePageLoad イベントを使用すると思いますか?
それらが action=editDocument に移動するのを防ぎ、action=openDocument url にリダイレクトするにはどうすればよいですか?
ユーザーが action=editDocument で URL を入力した場合、同じ URL にリダイレクトできるようにしたいと考えていますが、action=openDocument です。
beforePageLoad イベントを使用すると思いますか?
それらが action=editDocument に移動するのを防ぎ、action=openDocument url にリダイレクトするにはどうすればよいですか?
以下は、パラメーター アクションが「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>
editDocument がある場合view.getRequestUrl()
は、リクエストに docID が含まれている可能性があります。この場合は、view.getpageName()