2012-05-06 2 views
1

リダイレクトに問題があります。プライムフェイスとJSF 2.1を使用しています。 JSF 2.1にはナビゲーションルールがなく、答えを探しているので、 "faces-redirect = true"を置くことができます。問題は、それは働いていないと私はなぜ知りません。ブラウザは "私はナビゲーションがありませんが、何もしていないのですか?"最初のアクションの場合は "/Autenticacion/login.xhtml"、2番目の場合は " JSF 2.1ではfaces-config.xmlファイルが作成されません。そのファイルを作成し、そのアクションのルールを追加しましたが、問題はそのまま残ります。JavaFaces 2.0をリダイレクトしないPrimefaces p:commandButton o p:commandLink

これらは私のファイルです:

LOGINのBEAN

@ManagedBean(name="controlLogin") 
@SessionScoped 
public class ControladorLogin implements Serializable{ 

    public String logIn(){ 
     //actions 
     return "index" //algo tryed index.xhtml or index?faces-redirect=true 
    } 

PRIMEFACESコマンドボタン

<p:commandButton action="#{controlLogin.logIn}" value="Loguearse" ajax="false"/> 

私はまたのcommandLink

<p:commandLink action="#{controlLogin.logIn}" value="Loguearse" ajax="false"/> 

FACES-config.xmlにしてみてください/ /必須ではない場合私はそれを削除することができます

<navigation-rule> 
    <from-view-id>/Autenticacion/login.xhtml</from-view-id> 
    <navigation-case> 
     <from-action>#{controlLogin.logIn}</from-action> 
     <from-outcome>index</from-outcome> 
     <to-view-id>/index.xhtml</to-view-id> 
    </navigation-case> 
</navigation-rule> 

誰かが私にこのリダイレクトをするのを助けることができれば...ありがとう!!

+0

FacesContext.getCurrentInstance()。getExternalContext()。redirect(yourURL);を使用してみてください。 – rags

答えて

4

実際、JSF 2.xでは、ナビゲーションルールを定義する必要はありません。 注釈(例:ExceptionHandlerFactory)で覆われていない特殊なケースの場合は、faces-config.xmlはまったく必要ありません。

return "index?faces-redirect=true"を使用すると、完全に問題ありません。 faces-redirect=trueは、のデフォルトforwardではなく、xhtmlから別のxhtmlへのredirectを意味します。この場合

Difference between forward and redirect

ちょうどあなたindex.xhtmlページは、あなたがそれにアクセスしようとしたページと同じディレクトリにあることを確認してください。

それ以外の場合はindexページがに別のディレクトリに位置しているならば、あなたはこのようなbegginingにスラッシュ/絶対パスを指定する必要があります。"/indexFolder/index?faces-redirect=true"

+0

答えに感謝します。レコードのために、私はjava-facesで作業しているように、自分のページがあるフォルダパスに "/ faces"を追加しなければなりませんでした。どうもありがとう! –

+0

ちょうど推測。あなたはおそらく '定義した<のservlet-mapping> \t \tののサーブレットに直面 \t \t /顔/ * \t'であなたの 'web.xml'。 'url-pattern'を' * .jsf(または* .xhtml) 'に変更(または新規追加)した場合、フォルダパスに「/ faces」を追加しなくても動作します。 – Fallup

+0

@Fallup非常に本当です、ありがとうございます。 – sampathpremarathna

関連する問題