2017-05-28 19 views
0

在applicationContext文件中,我添加了包来映射它。 呼叫到达,但变量仍为空,并且不传递给服务器。在其他类中,同样工作正常。@ManagedProperty不填写变量

提前致谢!

@ManagedBean(name="registerUser") 
@SessionScoped 
public class RegisterUser{ 

    @ManagedProperty("#{userService}") 
    private DAOUser userService; 

    private User user = new User(); 

    public DAOUser getUserService() { 
     return userService; 
    } 

    public void setUserService(DAOUser userService) { 
     this.userService = userService; 
    } 
    public User getUser() { 
     return user; 
    } 

    public void setUser(User user) { 
     this.user = user; 
    } 
    public String register() { 
     // Calling Business Service 
     String passwordEncripada = PasswordControl.encriptString(user.getPassword()); 
     user.setPassword(passwordEncripada); 
     userService.register(user); 
     // Add message 
     FacesContext.getCurrentInstance().addMessage(null, 
       new FacesMessage("Registro realizado")); 
     return ""; 
    } 

和DAOUser类:

@Component 
public class DAOUser implements Serializable { 
    @Autowired 
    private SessionFactory sessionFactory; 

    public SessionFactory getSessionFactory() { 
     return sessionFactory; 
    } 
    @Transactional 
    public void register(User user){ 
     // Acquire session 
     Session session = sessionFactory.getCurrentSession(); 
     // Save employee, saving behavior get done in a transactional manner 
     session.save(user);  
    } 
} 

编辑:设置器调用,但它发送的对象是空

+0

如果您用英语提问,许多人都能理解,并且获得解决方案的机会可能很高。 –

+0

也许是一个错误的导入 - 例如SessionScoped? –

+0

我正在使用: import javax.faces.application.FacesMessage; import javax.faces.bean.ManagedBean; import javax.faces.bean.ManagedProperty; import javax.faces.bean.SessionScoped; import javax.faces.context.FacesContext; – Oshant

回答

0

我认为这个问题是在DAOUser类名的正常化。我已经去使用@Repository(“userService”)而不是@Component,它已经在工作。

@Repository("userService") 
public class DAOUser implements Serializable { 
    @Autowired 
    private SessionFactory sessionFactory; 

    public SessionFactory getSessionFactory() { 
     return sessionFactory; 
    } 
    @Transactional 
    public void register(User user){ 
     // Acquire session 
     Session session = sessionFactory.getCurrentSession(); 
     // Save employee, saving behavior get done in a transactional manner 
     session.save(user);  
    } 
}