0

URL (バッキング Bean 内) によってユーザーをポートレット内の他のページにリダイレクトするにはどうすればよいですか? JBoss 5.1.0 で GateIn 3.1 を使用しています。

通常FacesContext.getCurrentInstance().getExternalContext().redirect("url")はこれで十分ですが、ここでは機能せず、ユーザーをリダイレクトしません。

context.getApplication().getNavigationHandler().handleNavigation(context, null, page)どちらも機能しません。

リダイレクトできる可能性のあるすべてのページに対してナビゲーション ルールを作成することは避けたいと考えています。

編集:ポートレット内だけでなくポータル内でもリダイレクトされているa4j:commandButtonと置き換えた後、いくつかの問題が発生していたようです。h:commandButton

4

2 に答える 2

0

sendRedirect を利用可能にするには、オブジェクトの応答を HttpServletResponse にキャストする必要があります。

HttpServletResponse objHttpServletResponse = (HttpServletResponse)
                          FacesContext.getCurrentInstance()
                                      .getExternalContext()
                                      .getResponse();
objHttpServletResponse.sendRedirect(url);

これは、ブラウザによって管理される 302 リダイレクトを実行しています。

于 2013-12-17T08:22:00.123 に答える
0

faces-config.xml私が見つけた他の唯一の代替手段( に多くのナビゲーションケースがあることに対する)FacesContext.getCurrentInstance().getViewRoot().setViewId(page)は、ページがString page = FacesContext.getCurrentInstance().getViewRoot().getViewId().

于 2013-12-18T07:41:16.987 に答える