【问题标题】:Update Target Unreachable, returned null [duplicate]更新目标不可达,返回 null [重复]
【发布时间】:2014-11-15 14:30:34
【问题描述】:

在尝试使用对象 currentCenter 并使用 Primefaces 在对话框上显示其属性时遇到问题,但它一直显示此错误

错误

AVERTISSEMENT: /pages/centres.xhtml @151,196 value="#
 {centreMB.currentCentre.matricule}": Target Unreachable, 'currentCentre' returned null
 javax.el.PropertyNotFoundException: /pages/centres.xhtml @151,196 value="#
{centreMB.currentCentre.matricule}": Target Unreachable, 'currentCentre' returned null
at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:100)
at org.primefaces.renderkit.InputRenderer.findImplicitConverter(InputRenderer.java:170)
at org.primefaces.renderkit.InputRenderer.findConverter(InputRenderer.java:190)
at org.primefaces.renderkit.InputRenderer.getConvertedValue(InputRenderer.java:196)

CentreManagedBean.java

 public void onSelectCentreForUpdate(Centre centre) {
    try {
        setCurrentCentre(centre);
        setIdcentreselected(centre.getIdcentre());
    } catch (Exception e) {
        System.out.println(e);
    }
}

/**
 * Modifier Médecin
 *
 * @return vide
 */
public void updateCentre() {
    try {
        Centre c=getCentreService().getCentreById(getIdcentreselected());
        c.setMatricule(currentCentre.getMatricule());
        c.setAdresse(currentCentre.getAdresse());
        c.setUpdatedAt(new Date());
        getCentreService().updateCentre(c);

    } catch (DataAccessException e) {
        System.out.println(e);
    }
}

centre.xhtml

   <p:column style="width:0.5%"> 
                               <p:commandButton icon="ui-icon-pencil" actionListener="#{centreMB.onSelectCentreForUpdate(centre)}" update=":editCentre:updatePanel" oncomplete="updateCentre.show()"/>

                            </p:column> 

            <!-- Modification -->
            <p:dialog header="Modification du centre" widgetVar="updateCentre" resizable="false" id="editP" modal="true"> 
                <p:messages id="msgs"/>  
                <h:panelGrid columns="2" id="updatePanel">

                <h:outputLabel for="matricule" value="Matricule: *" />
                <p:inputText id="matricule" value="#{centreMB.currentCentre.matricule}" required="true" label="Matricule" style="width: 205px" requiredMessage="Matricule: Champ obligatoire"/>                  
                <h:outputLabel for="nom" value="Nom: *" />  
                <p:inputText id="nom" value="#{centreMB.currentCentre.nom}" required="true" label="Firstname" style="width: 205px" requiredMessage="Nom: Champ obligatoire"/>
                <h:outputLabel for="prenom" value="Adresse: " />  
                <p:inputTextarea id="prenom" value="#{centreMB.currentCentre.adresse}" label="Surname" required="false" style="width: 205px" />

                </h:panelGrid>  
                <p:separator/>             
                <p:commandButton styleClass="ui-panel-titlebar-icon ui-corner-all ui-state-default" id="enregsitrer" value="Enregistrer" update="msgs" actionListener="#{centreMB.updateCentre}" ajax="true" style="width: 248px;" oncomplete="handleDialogSubmitUpdate(xhr, status, args)"/>  
                <p:commandButton type="button" styleClass="ui-panel-titlebar-icon ui-corner-all ui-state-default" value="Annuler" ajax="true" onclick="updateCentre.hide()"/>

            </p:dialog>

        </h:form>

感谢您的帮助问候

【问题讨论】:

    标签: jakarta-ee jsf-2 primefaces


    【解决方案1】:

    我认为你得到的错误是空的。 组织如下:

    private CurrentCentre currentCentre= new CurrentCentre();
    

    public CurrentCentre getCurrentCentre(){
       if(currentCentre == null)
          currentCentre = new CurrentCentre();
       return currentCentre;
    }
    

    【讨论】:

    • 我已经解决了这是@SessionScoped的问题
    猜你喜欢
    • 1970-01-01
    • 2011-04-14
    • 1970-01-01
    • 2011-11-10
    • 2017-10-30
    • 2014-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多