我有一个名为 User 的托管 bean,它有一个名为 name 的 String 属性:
public class User {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
我有另一个名为 UserManager 的托管 bean,它具有 User 类型的属性,并允许您将用户添加到用户列表中:
public class UserManager {
private List<User> userList = new ArrayList<User>();
private User user;
public User getUser() {
return this.user;
}
public void setUser(User user) {
this.user = user;
}
public String addUser() {
userList.add(user);
return "_USERADDED";
}
}
我添加用户的 JSF 页面如下所示:
<h:form>
<h:inputText value="#{userManager.user.name}"/>
<h:commandButton value="Add User" action="#{userManager.addUser}"/>
</h:form>
我遇到的问题是当我运行我的页面并单击“添加用户”按钮时,我收到以下错误:
adduser.xhtml @11,50 value="#{userManager.user.name}": 目标不可达,'null' 返回 null
我假设这个错误是由于 UserManager 中的user属性为 null 并且我试图访问它来设置属性名称。
如果我修改 UserManager 并初始化用户属性,我可以让它工作:
private User user = new User();
我的问题是,这是初始化属性的正确方法,还是可以从 JSF 文件和/或配置文件中进行?