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;
}
}
私の目標は非常に単純です。ユーザーがログインボタンを押したときに、ユーザーを認証したいと思います。
問題は次のとおりです。認証メソッドが呼び出されると、ユーザー属性がnullになります。アプリケーションをデバッグし、getUserメソッドが呼び出され、値が適切に設定されましたが、authenticateUserが呼び出される前のある時点([まだ]は見つかりませんでした)で、User属性がnullに設定されています...
これはかなり基本的な質問だと思いますが...私の間違いがどこにあるかを指摘できますか?
ありがとう。