1

ユーザーをロードし、その特定のユーザーにロールを割り当てることができる JSF ページがあります。Backing BeanAssignRolesBean@RequestScopedであり、そのままにしておきたいと思います。しかし、ここに私の問題があります...

フォームが送信されると、 が呼び出されますAssignRolesBean.execute()。これにより、確認ページへのパスが返されます。この確認ページでは、どの新しい役割が割り当てられ、どの役割が削除されるかを示したいと思います。ただし、確認ページにユーザーをロードするのに問題があります。

最初の AssignRoles ページで、userId は GET パラメータを使用して設定されます。h:inputHidden次に、ページの要素として追加されます。それは提出されます。しかし、次のページでも、userId が設定されていません (これにより User が読み込まれます)。RequestScope を保持し、userId を SessionMap に保存する必要がない方法はありますか? 非表示の入力を使用すると、ページ間でデータを取得できるようになると言われています。しかし、私はそれで問題があります。

4

2 に答える 2

1

jsf2 アプリを開発する場合は、フラッシュ スコープを使用してパラメーターを渡すことができます。フラッシュ スコープの詳細については、Learning JSF2: Using Flash scope を参照してください。

または、パラメーターをセッションマップに入れることができます

sessionMap を取得するためのコード スニペット:

FacesContext.getCurrentInstance().getExternalContext().getSessionMap()
于 2011-04-29T14:33:38.353 に答える
0

以下をビューに追加して、GET 要求でアクションを実行します。

<f:metadata>
    <f:event type="preRenderView" listener="#{bean.init}" />
</f:metadata>

public void init() {
    // Request parameters which are set by h:inputHidden, @ManagedProperty
    // or f:viewParam are available here.
    // You can just do e.g:
    this.user = userService.find(userId);
}
于 2011-04-21T21:33:38.660 に答える