GateIn - ポートレット内でリダイレクトする

How can you redirect a user by URL (within backing bean) to some other page within portlet? We are using GateIn 3.1 on JBoss 5.1.0

通常、 FacesContext.getCurrentInstance()。getExternalContext()。redirect( "url")で十分ですが、ここでは機能しません。

context.getApplication().getNavigationHandler().handleNavigation(context, null, page) doesn't work either.

私たちはリダイレクトできるすべてのページに対してナビゲーションルールを作成しないようにしたいと考えています。

編集: a4j:commandButton は、ポートレット内だけでなくポータル内でも、リダイレクトされている h:commandButton

0
ru de
FacesContext.getCurrentInstance()を試しましたか?getExternalContext()。getRe‌ sponse()。sendRedirec‌ t( "url"); FacesContext.getCurrentInstance()。responseComplete(); ?
追加された 著者 Thomas,
私はsendRedirectメソッドを持っていません。私はresponseCompleteで試しましたが、ポータルリダイレクトのようなものが発生します。なぜなら、 "<�?xml version =" 1.0 "?>"
追加された 著者 rbiggy,

2 答え

sendRedirectを使用できるようにするには、HttpServletResponseにオブジェクトレスポンスをキャストする必要があります。

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

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

0
追加された
私は知っているが、応答はHttpServletResponseオブジェクトではなく、org.jboss.portletbridge.richfaces.BufferedResourceResponseWr&zwnj; apperです。
追加された 著者 rbiggy,

FacesContext.getCurrentInstance()。getViewRoot()。setViewId(page)を使用する以外の唯一の代替方法( faces-config.xml /code>をリダイレクトします。ここで、ページは String page = FacesContext.getCurrentInstance()。getViewRoot()。getViewId()です。

0
追加された