2016-10-08 10 views
2

Вот мой кодформа Обновления в верстке файла по идентификатору из другого файла Xhtml

index.xhtml

<h1>Student List</h1> 
    <h:form id="studentListForm"> 
     <h:dataTable id="studentsList" 
        style="border:2px solid;" 
        var="student" 
        value="#{tableItems.students}"> 
      <h:column> 
       <f:facet name="First Name"/> 
       <h:outputText value="#{student.firstName}"/> 
      </h:column> 
      <h:column> 
       <f:facet name="Last Name"/> 
       <h:outputText value="#{student.lastName}"/> 
      </h:column> 
      <h:column> 
       <f:facet name="Faculty Name"/> 
       <h:outputText value="#{student.faculty.name}"/> 
      </h:column> 
     </h:dataTable> 
     <br/> 
     <p:commandButton value="Add Student" 
         update=":studentAdding" 
         oncomplete="PF('studentAddingDialog').show();"/> 
    </h:form> 

addStudent.xhtml

<p:dialog id="studentAddingDialogId" modal="true" 
       header="Add Student" 
       widgetVar="studentAddingDialog" 
       closeOnEscape="true"> 

     <h:form id="studentAdding"> 
      <h:outputLabel value="Student first name"/> 
      <h:inputText id="firstName" 
         value="#{tableItems.studentFirstName}" 
         required="true"/> 
      <br/> 
      <h:outputLabel value="Student last name"/> 
      <h:inputText id="lastName" 
         value="#{tableItems.studentLastName}" 
         required="true"/> 
      <br/> 
      <h:outputLabel value="Choose student faculty"/> 
      <h:selectOneMenu id="selectFaculty" 
          value="#{tableItems.studentFaculty}" 
          required="true"> 

       <f:selectItem itemLabel="--Select--" itemValue=""/> 
       <f:selectItems value="#{faculties.faculties}" 
           var="itam" 
           itemValue="#{itam.name}" 
           itemLabel="#{itam.name}"/> 
      </h:selectOneMenu> 
      <p:commandButton value="Submit" 
          actionListener="#{tableItems.addStudent}" 
          oncomplete="PF('studentAddingDialog').hide();" 
          update="studentListForm"/> 
     </h:form> 
    </p:dialog> 

После запуска программы появляется сообщение об ошибке (HTTP-статус 500 - Не удается найти компонент для выражения «: studentAdding», на который ссылается «studentListForm: j_idt10».) Почему он не может распознать форму с ее идентификатором из другого файла xhtml?

ответ

0

Здесь вы пытаетесь открыть диалоговое окно, которое находится в другой странице, так что при попытке обновить studentAdding не найти форму, которая объясняет ошибку Cannot find component for expression ":studentAdding" referenced from "studentListForm:j_idt10", я предлагаю вам включить страницу addStudent.xhtml в главной странице что index.xhtml:

<ui:include src="/../studentAdding.xhtml"> 
    <ui:param name="updateForm" value=":studentListForm"/> 
</ui:include> 

вы должны убедиться, что все, что вы хотите обновить из studentAdding.xhtml и находится в index.xhtml, вы должны передать его в качестве параметра studentAdding.xhtml, как Exemple studentListForm, что вы обновление в кнопке отправки, поэтому при обновлении вы используете имя параметра что вы прошли, что составляет updateForm, например:

<p:commandButton value="Submit" 
       actionListener="#{tableItems.addStudent}" 
       oncomplete="PF('studentAddingDialog').hide();" 
       update="updateForm "/>