JSF2でPrimeFacesを使用しています。ログインとパスワードをAjaxリクエストとして送信して、ユーザーを認証しようとしています。そして、バッキングBeanのアクションメソッドでは、ユーザーを検証し、検証が成功した場合に新しいビューにリダイレクトしようとしています。
プライムフェイスを使用しているときにこれは可能ですか?
私はprimefacesのp:commandButton
、私はajaxの振る舞いかナビゲーションのどちらかしか持てません。
はい、結果として(デフォルト)フォワードの代わりにリダイレクトを送信するだけです。 <navigation-case>
- less JSF 2.0の方法は?faces-redirect=true
をアクションメソッドの結果文字列に。
例えば。
public String login() {
// ...
return "home?faces-redirect=true";
}
ここにあなたが役立つかもしれないもう一つのテクニックがあります。これは、ナビゲーションを実装しないPrimefaces属性からAJAXを介してメソッドを呼び出す場合です。たとえば、nodeSelectionListenerによって選択されたメソッドを持つp:treeオブジェクトがあります。
そのメソッドでは、次のようにリダイレクトを呼び出すことができます。
String url = (something)
FacesContext fc = FacesContext.getCurrentInstance();
ExternalContext ec = fc.getExternalContext();
try {
ec.redirect(url);
} catch (IOException ex) {
Logger.getLogger(Navigation.class.getName()).log(Level.SEVERE, null, ex);
}
これがお役に立てば幸いです。