会话范围的JSFbean中的请求范围的属性



我想要一个会话范围的JSFbean,其中有一个属性是请求(页面)范围的。有可能吗?

不,这是不可能的。托管属性注入发生在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;
        }
    }
    // ...
}

相关内容

  • 没有找到相关文章

最新更新