JSF2でPrimeFacesを使用しています。ログインとパスワードを Ajax リクエストとして送信して、ユーザーを認証しようとしています。また、バッキング Bean のアクション メソッドでは、ユーザーを検証し、検証が成功した場合は新しいビューにリダイレクトしようとしています。
これはプライムフェイスの使用中に可能ですか?
私は Primefaces で考えているためp:commandButton
、ajax の動作またはナビゲーションのいずれかしか使用できません。
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";
}
便利なテクニックをもう 1 つ紹介します。これは、ナビゲーションを実装していない Primefaces 属性から AJAX 経由でメソッドを呼び出す場合です。たとえば、nodeSelectionListener によって選択されたメソッドを持つ ap: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);
}
これが役に立つことを願っています。