目标无法访问,'用户'返回null

时间:2014-08-26 18:11:04

标签: java jsf

我已经创建了一个添加方法,我使用了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

。你能帮我找到问题吗?

1 个答案:

答案 0 :(得分:0)

您需要为要自动装配的每个字段使用@Autowired注释。

@Autowired
private UserService userService;
@Autowired
private User user;

如果您不希望user自动装配,则必须在某处(即在构造函数中)初始化它,因为inputText将调用user.getPrenom()和{{1 }}。