リクエスト (ページ) スコープの 1 つのプロパティを持つ、セッション スコープの JSF Bean が必要です。それはまったく可能ですか?
4822 次
1 に答える
8
いいえ、それは不可能です。管理プロパティの注入は、Bean の作成中にのみ発生します。ただし、セッション スコープ Bean が作成された場合、必ずしもリクエストが存在するとは限らず、注入されたリクエスト スコープ Bean は、セッションの残りの後続のリクエストでは無効になります。
逆にやってください。例えば
@ManagedBean
@SessionScoped
public class UserManager {
private User current;
// ...
}
と
@ManagedBean
@RequestScoped
public class Login {
private String username;
private String password;
@ManagedProperty(value="#{userManager}")
private UserManager userManager;
@EJB
private UserService userService;
public String submit() {
User user = userService.find(username, password);
if (user != null) {
userManager.setCurrent(user);
return "home?faces-redirect=true";
} else {
addErrorMessage("Unknown login, please try again");
return null;
}
}
// ...
}
于 2011-05-26T11:18:39.520 に答える