我已经创建了一个添加方法,我使用了jsf和hibarnate框架,但是出现了一个值得注意的例外,她阻止了我。
代码视图:
<h:body>
<h:form>
<h:outputLabel value="Prenom: "
style="font-size:15px; font-family:verdana;" />
<p:inputText value="#{Bean.user.prenom}" style="width:201px; height:20px; font-size:15px;" />
<h:outputLabel value="Nom: "
style="font-size:15px; font-family:verdana;" />
<p:inputText value="#{Bean.user.nom}" style="width:201px; height:20px; font-size:15px;" />
<h:commandButton value="Submit" actionListener="#{Bean.saveUser()}" />
</h:form>
</h:body>
代码bean管理器是:
@ManagedBean(name="Bean")
@RequestScoped
@Component
public class UserManager{
@Autowired
private UserService userService;
private User user;
public UserService getUserService() {
return userService;
}
public void setUserService(UserService userService) {
this.userService = userService;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public void saveUser(){
userService.add(user);
}
}
当我提交表单时,我收到此错误
Etat HTTP 500 - /pages/test.xhtml @13,102 value="#{Bean.user.prenom}": Target Unreachable, 'user' returned null
。你能帮我找到问题吗?
答案 0 :(得分:0)
您需要为要自动装配的每个字段使用@Autowired
注释。
@Autowired
private UserService userService;
@Autowired
private User user;
如果您不希望user
自动装配,则必须在某处(即在构造函数中)初始化它,因为inputText
将调用user.getPrenom()
和{{1 }}。