2010-09-18 6 views
12

Здравствуйте, я новая проблему с С Формой моей проблемы здесьPropertyNotFoundException: Target недостижим, 'нулевой' возвращается Null

WARNING: /test.xhtml @24,173 value="#{userController.users.username}": Target Unreachable, 'null' returned null 
javax.el.PropertyNotFoundException: /test.xhtml @24,173 value="#{userController.users.username}": Target Unreachable, 'null' returned null 
     at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:93) 
     at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:95) 
     at javax.faces.component.UIInput.getConvertedValue(UIInput.java:1008) 
     at javax.faces.component.UIInput.validate(UIInput.java:934) 
     at javax.faces.component.UIInput.executeValidate(UIInput.java:1189) 
     at javax.faces.component.UIInput.processValidators(UIInput.java:691) 
     at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1080) 
     at javax.faces.component.UIForm.processValidators(UIForm.java:243) 
     at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1080) 
     at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1080) 
     at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1180) 
     at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76) 
     at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) 
     at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) 
     at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312) 
     at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523) 
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279) 
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188) 
     at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641) 
     at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97) 
     at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85) 
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185) 
     at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325) 
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226) 
     at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165) 
     at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791) 
     at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693) 
     at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954) 
     at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170) 
     at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135) 
     at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102) 
     at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88) 
     at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76) 
     at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53) 
     at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57) 
     at com.sun.grizzly.ContextTask.run(ContextTask.java:69) 
     at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330) 
     at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309) 
     at java.lang.Thread.run(Thread.java:619) 

и мой назад боб

/* 
* To change this template, choose Tools | Templates 
* and open the template in the editor. 
*/ 

package com.ejb.controller; 

import com.ejbbean.iUserBean; 
import com.entity.Igroup; 
import com.entity.Iuser; 
import java.awt.event.ActionEvent; 
import java.io.Serializable; 
import java.util.List; 
import javax.ejb.EJB; 
import javax.faces.application.FacesMessage; 
import javax.faces.bean.ManagedBean; 

import javax.faces.bean.ViewScoped; 
import javax.faces.context.FacesContext; 
import javax.faces.model.SelectItem; 

/** 
* 
* @author KencyWindy 
*/ 
@ManagedBean 
@ViewScoped 
public class UserController implements Serializable{ 
    @EJB 
    private iUserBean iUserBean; 
    private Iuser users ; 
    private Igroup groupa; 



    public UserController() { 

    } 
    public Igroup getGroupa() { 
     return groupa; 
    } 

    public void setGroupa(Igroup groupa) { 
     this.groupa = groupa; 
    } 

    public Iuser getUsers() { 
     return users; 
    } 

    public void setUsers(Iuser users) { 
     this.users = users; 
    } 


    public List<Iuser> getAllUser(){ 
     return iUserBean.retrieve(); 
    } 


    public void addUser(){ 


     users = new Iuser(); 
     users = iUserBean.createUser(users); 



    } 
    public javax.faces.model.SelectItem[] getAllOfGroups(){ 
     SelectItem[] options = null; 

     List<Igroup> lgroup = iUserBean.retrieveGroup(); 
     if(lgroup.size() > 0 && lgroup != null){ 
      options = new SelectItem[lgroup.size()]; 
      int i = 0 ; 
      for (Igroup igroup : lgroup){ 
       options[i++] = new SelectItem(igroup.getGId(), igroup.getGroupname()); 
      } 
     } 

     return options; 

    } 




    public void submit(ActionEvent event) { 
     FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Correct", "Correct"); 

     FacesContext.getCurrentInstance().addMessage(null, msg); 
    } 


} 

Igroup класса сущностей

/* 
* To change this template, choose Tools | Templates 
* and open the template in the editor. 
*/ 

package com.entity; 

import java.io.Serializable; 
import java.util.List; 
import javax.persistence.Basic; 
import javax.persistence.CascadeType; 
import javax.persistence.Column; 
import javax.persistence.Entity; 
import javax.persistence.GeneratedValue; 
import javax.persistence.GenerationType; 
import javax.persistence.Id; 
import javax.persistence.NamedQueries; 
import javax.persistence.NamedQuery; 
import javax.persistence.OneToMany; 
import javax.persistence.Table; 

/** 
* 
* @author KencyWindy 
*/ 
@Entity 
@Table(name = "igroup") 
@NamedQueries({ 
    @NamedQuery(name = "Igroup.findAll", query = "SELECT i FROM Igroup i"), 
    @NamedQuery(name = "Igroup.findByGId", query = "SELECT i FROM Igroup i WHERE i.gId = :gId"), 
    @NamedQuery(name = "Igroup.findByGroupname", query = "SELECT i FROM Igroup i WHERE i.Groupname = :Groupname"), 
    @NamedQuery(name = "Igroup.findByAdministrator", query = "SELECT i FROM Igroup i WHERE i.administrator = :administrator"), 
    @NamedQuery(name = "Igroup.findByReaded", query = "SELECT i FROM Igroup i WHERE i.readed = :readed"), 
    @NamedQuery(name = "Igroup.findByDeleted", query = "SELECT i FROM Igroup i WHERE i.deleted = :deleted"), 
    @NamedQuery(name = "Igroup.findByUpdated", query = "SELECT i FROM Igroup i WHERE i.updated = :updated"), 
    @NamedQuery(name = "Igroup.findByModed", query = "SELECT i FROM Igroup i WHERE i.moded = :moded"), 
    @NamedQuery(name = "Igroup.findByAdded", query = "SELECT i FROM Igroup i WHERE i.added = :added")}) 
public class Igroup implements Serializable { 
    private static final long serialVersionUID = 1L; 
    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    @Basic(optional = false) 
    @Column(name = "g_id") 
    private Integer gId; 
    @Basic(optional = false) 
    @Column(name = "g_name") 
    private String Groupname; 
    @Column(name = "administrator") 
    private Boolean administrator; 
    @Basic(optional = false) 
    @Column(name = "readed") 
    private boolean readed; 
    @Column(name = "deleted") 
    private Boolean deleted; 
    @Column(name = "updated") 
    private Boolean updated; 
    @Column(name = "moded") 
    private Boolean moded; 
    @Column(name = "added") 
    private Boolean added; 
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "igroup") 
    private List<Iuser> iuserList; 

    public Igroup() { 
    } 

    public Igroup(Integer gId) { 
     this.gId = gId; 
    } 

    public Igroup(Integer gId, String gName, boolean readed) { 
     this.gId = gId; 
     this.Groupname = gName; 
     this.readed = readed; 
    } 

    public Integer getGId() { 
     return gId; 
    } 

    public void setGId(Integer gId) { 
     this.gId = gId; 
    } 

    public String getGroupname() { 
     return Groupname; 
    } 

    public void setGroupname(String Groupname) { 
     this.Groupname = Groupname; 
    } 

    public Boolean getAdministrator() { 
     return administrator; 
    } 

    public void setAdministrator(Boolean administrator) { 
     this.administrator = administrator; 
    } 

    public boolean getReaded() { 
     return readed; 
    } 

    public void setReaded(boolean readed) { 
     this.readed = readed; 
    } 

    public Boolean getDeleted() { 
     return deleted; 
    } 

    public void setDeleted(Boolean deleted) { 
     this.deleted = deleted; 
    } 

    public Boolean getUpdated() { 
     return updated; 
    } 

    public void setUpdated(Boolean updated) { 
     this.updated = updated; 
    } 

    public Boolean getModed() { 
     return moded; 
    } 

    public void setModed(Boolean moded) { 
     this.moded = moded; 
    } 

    public Boolean getAdded() { 
     return added; 
    } 

    public void setAdded(Boolean added) { 
     this.added = added; 
    } 

    public List<Iuser> getIuserList() { 
     return iuserList; 
    } 

    public void setIuserList(List<Iuser> iuserList) { 
     this.iuserList = iuserList; 
    } 

    @Override 
    public int hashCode() { 
     int hash = 0; 
     hash += (gId != null ? gId.hashCode() : 0); 
     return hash; 
    } 

    @Override 
    public boolean equals(Object object) { 
     // TODO: Warning - this method won't work in the case the id fields are not set 
     if (!(object instanceof Igroup)) { 
      return false; 
     } 
     Igroup other = (Igroup) object; 
     if ((this.gId == null && other.gId != null) || (this.gId != null && !this.gId.equals(other.gId))) { 
      return false; 
     } 
     return true; 
    } 

    @Override 
    public String toString() { 
     return "com.entity.Igroup[gId=" + gId + "]"; 
    } 

} 

Iuser Entity Class

/* 
* To change this template, choose Tools | Templates 
* and open the template in the editor. 
*/ 

package com.entity; 

import java.io.Serializable; 
import java.util.Date; 
import javax.persistence.Basic; 
import javax.persistence.Column; 
import javax.persistence.Entity; 
import javax.persistence.GeneratedValue; 
import javax.persistence.GenerationType; 
import javax.persistence.Id; 
import javax.persistence.JoinColumn; 
import javax.persistence.ManyToOne; 
import javax.persistence.NamedQueries; 
import javax.persistence.NamedQuery; 
import javax.persistence.Table; 
import javax.persistence.Temporal; 
import javax.persistence.TemporalType; 

/** 
* 
* @author KencyWindy 
*/ 
@Entity 
@Table(name = "iuser") 
@NamedQueries({ 
    @NamedQuery(name = "Iuser.findAll", query = "SELECT i FROM Iuser i"), 
    @NamedQuery(name = "Iuser.findByUid", query = "SELECT i FROM Iuser i WHERE i.uid = :uid"), 
    @NamedQuery(name = "Iuser.findByUsername", query = "SELECT i FROM Iuser i WHERE i.username = :username"), 
    @NamedQuery(name = "Iuser.findByPassword", query = "SELECT i FROM Iuser i WHERE i.password = :password"), 
    @NamedQuery(name = "Iuser.findByPnum", query = "SELECT i FROM Iuser i WHERE i.pnum = :pnum"), 
    @NamedQuery(name = "Iuser.findByZipcode", query = "SELECT i FROM Iuser i WHERE i.zipcode = :zipcode"), 
    @NamedQuery(name = "Iuser.findByState", query = "SELECT i FROM Iuser i WHERE i.state = :state"), 
    @NamedQuery(name = "Iuser.findByDob", query = "SELECT i FROM Iuser i WHERE i.dob = :dob"), 
    @NamedQuery(name = "Iuser.findByEmail", query = "SELECT i FROM Iuser i WHERE i.email = :email"), 
    @NamedQuery(name = "Iuser.findByLastlogin", query = "SELECT i FROM Iuser i WHERE i.lastlogin = :lastlogin"), 
    @NamedQuery(name = "Iuser.findByRegdate", query = "SELECT i FROM Iuser i WHERE i.regdate = :regdate"), 
    @NamedQuery(name = "Iuser.findByAddress", query = "SELECT i FROM Iuser i WHERE i.address = :address"), 
    @NamedQuery(name = "Iuser.findByCity", query = "SELECT i FROM Iuser i WHERE i.city = :city")}) 
public class Iuser implements Serializable { 
    private static final long serialVersionUID = 1L; 
    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    @Basic(optional = false) 
    @Column(name = "uid") 
    private Integer uid; 
    @Basic(optional = false) 
    @Column(name = "username") 
    private String username; 
    @Basic(optional = false) 
    @Column(name = "password") 
    private String password; 
    @Basic(optional = false) 
    @Column(name = "pnum") 
    private int pnum; 
    @Basic(optional = false) 
    @Column(name = "zipcode") 
    private int zipcode; 
    @Basic(optional = false) 
    @Column(name = "state") 
    private String state; 
    @Basic(optional = false) 
    @Column(name = "dob") 
    @Temporal(TemporalType.TIMESTAMP) 
    private Date dob; 
    @Basic(optional = false) 
    @Column(name = "email") 
    private String email; 
    @Column(name = "lastlogin") 
    @Temporal(TemporalType.TIMESTAMP) 
    private Date lastlogin; 
    @Column(name = "regdate") 
    @Temporal(TemporalType.TIMESTAMP) 
    private Date regdate; 
    @Basic(optional = false) 
    @Column(name = "address") 
    private String address; 
    @Basic(optional = false) 
    @Column(name = "city") 
    private String city; 
    @JoinColumn(name = "igroup", referencedColumnName = "g_id") 
    @ManyToOne(optional = false) 
    private Igroup igroup; 

    public Iuser() { 
    } 

    public Iuser(Integer uid) { 
     this.uid = uid; 
    } 

    public Iuser(Integer uid, String username, String password, int pnum, int zipcode, String state, Date dob, String email, String address, String city) { 
     this.uid = uid; 
     this.username = username; 
     this.password = password; 
     this.pnum = pnum; 
     this.zipcode = zipcode; 
     this.state = state; 
     this.dob = dob; 
     this.email = email; 
     this.address = address; 
     this.city = city; 
    } 

    public Integer getUid() { 
     return uid; 
    } 

    public void setUid(Integer uid) { 
     this.uid = uid; 
    } 

    public String getUsername() { 
     return username; 
    } 

    public void setUsername(String username) { 
     this.username = username; 
    } 

    public String getPassword() { 
     return password; 
    } 

    public void setPassword(String password) { 
     this.password = password; 
    } 

    public int getPnum() { 
     return pnum; 
    } 

    public void setPnum(int pnum) { 
     this.pnum = pnum; 
    } 

    public int getZipcode() { 
     return zipcode; 
    } 

    public void setZipcode(int zipcode) { 
     this.zipcode = zipcode; 
    } 

    public String getState() { 
     return state; 
    } 

    public void setState(String state) { 
     this.state = state; 
    } 

    public Date getDob() { 
     return dob; 
    } 

    public void setDob(Date dob) { 
     this.dob = dob; 
    } 

    public String getEmail() { 
     return email; 
    } 

    public void setEmail(String email) { 
     this.email = email; 
    } 

    public Date getLastlogin() { 
     return lastlogin; 
    } 

    public void setLastlogin(Date lastlogin) { 
     this.lastlogin = lastlogin; 
    } 

    public Date getRegdate() { 
     return regdate; 
    } 

    public void setRegdate(Date regdate) { 
     this.regdate = regdate; 
    } 

    public String getAddress() { 
     return address; 
    } 

    public void setAddress(String address) { 
     this.address = address; 
    } 

    public String getCity() { 
     return city; 
    } 

    public void setCity(String city) { 
     this.city = city; 
    } 

    public Igroup getIgroup() { 
     return igroup; 
    } 

    public void setIgroup(Igroup igroup) { 
     this.igroup = igroup; 
    } 


    public Integer getGrouplist(){ 
     return this.igroup.getGId(); 
    } 

    public void setGrouplist(Integer intgroup){ 
     this.igroup = new Igroup(intgroup); 

    } 

    @Override 
    public int hashCode() { 
     int hash = 0; 
     hash += (uid != null ? uid.hashCode() : 0); 
     return hash; 
    } 

    @Override 
    public boolean equals(Object object) { 
     // TODO: Warning - this method won't work in the case the id fields are not set 
     if (!(object instanceof Iuser)) { 
      return false; 
     } 
     Iuser other = (Iuser) object; 
     if ((this.uid == null && other.uid != null) || (this.uid != null && !this.uid.equals(other.uid))) { 
      return false; 
     } 
     return true; 
    } 

    @Override 
    public String toString() { 
     return "com.entity.Iuser[uid=" + uid + "]"; 
    } 

} 

ответ

23
value="#{userController.users.username}": 
Target Unreachable, 'null' returned null 

Либо #{userController} или #{userController.users} является null.

Мои центы, которые #{userController.users}: null. Вы не преобретаете его в своем компоненте. #{userController} правильно объявлен и используется как @ManagedBean.

Вы должны предварительно заполнить его в postconstruct боба:

@PostConstruct 
public void init() { 
    users = new Iuser(); 
} 
+0

Привет BalusC я последовал за этим способом предварительного заполнения пользователей в конструкторе UserController но когда я сохраняю его Glassfish server deploy бросает NullpointerException ?? это означает, что пользователи равны нулю? как решить эту проблему? Пожалуйста, помогите мне поблагодарить вас – Kency

+0

Зависит от того, что именно равно null. Прочитайте файл stacktrace и исправьте соответствующий код. Либо убедитесь, что эта ссылка не является нулевой или обходит доступ к ссылке. – BalusC

+0

Да, я исправил свою ошибку, моя ошибка с методом getGrouplist, потому что теперь она имеет значение от Igroup, что нет набора для getGrouplist !! Еще раз спасибо за вашу поддержку – Kency

2

В UserController класс, объявить переменную, как это.

public Iuser users = new Iuser(); 

Потому что если вы не используете new Iuser() объект не создается, и он будет возвращен значение null.

0

инициализировать класс Iuser в поддержке боб, как таким образом

public Iuser getUsers() { 
if(users == null){ 
users = (Iuser)super.getInstance(Iuser.Class); 
} 
return users; 
} 

это создаст новый объект Iuser если объект утратившим

Смежные вопросы