来自 JSF 初学者的简单问题:
我有非常简单的 JSF 表单:
<h:form>
<p>#{messages.loginTextfieldUsername}</p>
<h:inputText value="#{userServiceImpl.user.name}" />
<p>#{messages.loginTextfieldPassword}</p>
<h:inputSecret value="#{userServiceImpl.user.password}" />
<h:commandButton value="#{messages.loginButtonLogin}" action="#{userServiceImpl.authenticateUser}" />
</h:form>
userServiceImpl 类是:
@Named
@RequestScoped
public class UserServiceImpl implements UserService {
private UserSession userSession;
private User user;
@Inject
public UserServiceImpl(UserSession userSession) {
this.userSession = userSession;
}
@PostConstruct
public void prepareService() {
user = new User();
}
@Override
public View authenticateUser() {
userSession.setLoggedUser(user);
return View.MAIN;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
我的目标很简单:当用户点击登录按钮时,我想对用户进行身份验证。
问题是:当调用authenticate 方法时,User 属性为null。我调试了应用程序并调用了 getUser 方法并且正确设置了值,但是在调用 authenticateUser 之前的某个时间点(我还没有找到 [尚未])用户属性设置为 null ...
我知道这是一个非常基本的问题......但是你能指出我的错误在哪里吗?
谢谢。