JSF:单击按钮时没有任何反应

时间:2014-03-31 08:18:09

标签: jsf primefaces

我最近开始维护在线系统。它使用带有PrimeFaces的JSF作为前端,带有Java后端。 JSF对我来说是一项新技术。

当我执行应用程序并单击按钮时,绝对没有任何反应。执行中没有错误。它根本就没有做任何事情。

有什么想法吗?

xHTML文件:

 <p:form>
        <p:dialog header="Détail demande" widgetVar="demandeDialog"
            resizable="false" id="demDlg" showEffect="fade" hideEffect="explode"
            width="800px" closable="true" appendToBody="true" maximizable="true"
            minimizable="true">

            <h:commandButton value="Imprimer" type="button" icon="ui-icon-print"
                styleClass="alignmentRight">
                <p:printer target="displayDem" />
            </h:commandButton>

            <p:accordionPanel id="displayDem" multiple="true">
                <p:tab title="Informations générales">
                    <h:panelGrid id="displayInfoGen" columns="4" cellpadding="10">
                        <h:outputText value="N° demande" style="font-weight:bold" />

                        <h:outputText
                            value="#{demandeController.selectedDemande.idDemande}" />

                        <h:outputText value="N° de devis" style="font-weight:bold" />
                        <h:outputText
                            value="#{demandeController.selectedDemande.lastDevis.numDevis}" />

                        <h:outputText value="Date de saisie de la demande"
                            style="font-weight:bold" />
                        <h:outputText
                            value="#{demandeController.selectedDemande.dateSaisie}">
                            <f:convertDateTime pattern="dd/MM/yyyy" />
                        </h:outputText>

                        <h:outputText value="Date de réception de la demande"
                            style="font-weight:bold" />
                        <h:outputText
                            value="#{demandeController.selectedDemande.dateDemande}">
                            <f:convertDateTime pattern="dd/MM/yyyy" />
                        </h:outputText>

                        <h:outputText value="Observations" style="font-weight:bold" />
                        <h:outputText
                            value="#{demandeController.selectedDemande.observations}" />

                    </h:panelGrid>
                </p:tab>
                <p:tab title="Programmes">
                    <h:panelGrid columns="4" cellpadding="10">

                        <h:outputText value="Programme" style="font-weight:bold" />
                        <h:outputText
                            value="#{demandeController.selectedDemande.idProgramme.codeProgImmobilier} - #{demandeController.selectedDemande.idProgramme.nomCommercial}" />

                        <h:outputText value="N° de lot" style="font-weight:bold" />
                        <h:outputText
                            value="#{demandeController.selectedDemande.idBien.idBien}" />

                        <h:outputText value="Nom de l'acquéreur" style="font-weight:bold" />
                        <h:outputText
                            value="#{demandeController.selectedDemande.idAcquereur.genreEtatCivil} #{demandeController.selectedDemande.idAcquereur.prenomAcquereur} #{demandeController.selectedDemande.idAcquereur.nomAcquereur}" />

                    </h:panelGrid>
                </p:tab>
                <p:tab title="Pièces jointes">
                    <h:panelGrid columns="4" cellpadding="10">

                        <h:outputText value="Fiche de demande de TMA"
                            style="font-weight:bold" />
                        <h:commandLink action="#{demandeController.displayPj}"
                            value="#{demandeController.ficheDemandeTma.nom}">
                            <f:setPropertyActionListener
                                value="#{demandeController.ficheDemandeTma}"
                                target="#{demandeController.ficheToDisplay}" />
                        </h:commandLink>

                        <h:outputText value="Fiche d'aide à la vente"
                            style="font-weight:bold" />
                        <h:commandLink action="#{demandeController.displayPj}"
                            value="#{demandeController.ficheAideVente.nom}">
                            <f:setPropertyActionListener
                                value="#{demandeController.ficheAideVente}"
                                target="#{demandeController.ficheToDisplay}" />
                        </h:commandLink>

                        <h:outputText value="Plans" style="font-weight:bold" />
                        <h:commandLink action="#{demandeController.displayPj}"
                            value="#{demandeController.plan.nom}">
                            <f:setPropertyActionListener value="#{demandeController.plan}"
                                target="#{demandeController.ficheToDisplay}" />
                        </h:commandLink>

                        <h:outputText value="Chèque d'ouverture de dossier reçu"
                            style="font-weight:bold" />
                        <h:outputText value="#{demandeController.chequeOuverture}" />
                    </h:panelGrid>
                </p:tab>

                <p:tab title="Devis">
                    <h:panelGrid columns="4" cellpadding="10">

                        <h:outputText value="Date de validité du devis"
                            style="font-weight:bold" />
                        <h:outputText
                            value="#{demandeController.selectedDemande.lastDevis.datValidite}">
                            <f:convertDateTime pattern="dd/MM/yyyy" />
                        </h:outputText>

                        <h:outputText value="Date du plan de référence"
                            style="font-weight:bold" />
                        <h:outputText
                            value="#{demandeController.selectedDemande.lastDevis.datPlanReference}">
                            <f:convertDateTime pattern="dd/MM/yyyy" />
                        </h:outputText>

                        <h:outputText value="Frais de dossier" style="font-weight:bold" />
                        <h:outputText
                            value="#{demandeController.selectedDemande.lastDevis.fraDossiers}" />

                        <h:outputText value="Frais de pilotage" style="font-weight:bold" />
                        <h:outputText
                            value="#{demandeController.selectedDemande.lastDevis.fraPilotage}" />

                        <h:outputText value="Frais de plan" style="font-weight:bold" />
                        <h:outputText
                            value="#{demandeController.selectedDemande.lastDevis.fraPlan}" />

                        <h:outputText value="Fiche option" style="font-weight:bold" />
                        <h:outputText
                            value="#{demandeController.selectedDemande.lastDevis.ficOption}" />

                    </h:panelGrid>
                </p:tab>
                <p:tab title="Lignes de chiffrages">
                    <h:panelGrid columns="1" cellpadding="10">

                        <p:dataTable var="ligne"
                            value="#{demandeController.selectedDemande.lastDevis.lignes}"
                            scrollable="true" scrollHeight="100"
                            emptyMessage="Pas de lignes" id="listLignes">

                            <p:column headerText="Lot" style="width: 10%"
                                sortBy="#{ligne.idLot.libelle}" rowspan="2">
                                <h:outputText value="#{ligne.idLot.libelle}" />
                            </p:column>

                            <p:column headerText="Descriptif" style="width: 27%"
                                sortBy="#{ligne.libelleDescriptif}" rowspan="2">
                                <h:outputText value="#{ligne.libelleDescriptif}" />
                            </p:column>

                            <p:column headerText="Charge" style="width: 12%"
                                sortBy="#{ligne.charge}" rowspan="2">
                                <h:outputText value="#{ligne.charge}" />
                            </p:column>

                            <p:column headerText="Qte" style="width: 8%"
                                sortBy="#{ligne.quantite}" rowspan="2">
                                <h:outputText value="#{ligne.quantite}" />
                            </p:column>

                            <p:column headerText="M. unit" style="width: 9%"
                                sortBy="#{ligne.montantUnitaire}" rowspan="2">
                                <h:outputText value="#{ligne.montantUnitaire}" />
                            </p:column>

                            <p:column headerText="M. total" style="width: 10%"
                                sortBy="#{ligne.montantTotal}" rowspan="2">
                                <h:outputText value="#{ligne.montantTotal}" />
                            </p:column>

                            <p:column headerText="Possibilité" style="width: 23%"
                                sortBy="#{ligne.possibilite}" rowspan="2">
                                <h:outputText value="#{ligne.possibilite}" />
                            </p:column>
                        </p:dataTable>

                        <h:panelGrid id="charges" columns="4" cellpadding="10"
                            style="text-align: center;margin-left: 25%;width: 50%; margin-right: 25%; margin-top: 30px; background-color:RGB(225,240,233)">

                            <h:outputText id="chargeSncHt" value="Charge SNC HT"
                                style="font-weight:bold" />
                            <h:outputText for="chargeSncHt"
                                value="#{demandeController.chargeSncHt}">
                                <f:convertNumber maxFractionDigits="2" />
                            </h:outputText>

                            <h:outputText id="chargeAcqHt" value="Charge Acq HT"
                                style="font-weight:bold" />
                            <h:outputText for="chargeAcqHt"
                                value="#{demandeController.chargeAcqHt}">
                                <f:convertNumber maxFractionDigits="2" />
                            </h:outputText>

                            <h:outputText id="chargeSncTtc" value="Charge SNC TTC"
                                style="font-weight:bold" />
                            <h:outputText for="chargeSncTtc"
                                value="#{demandeController.chargeSncTtc}">
                                <f:convertNumber maxFractionDigits="2" />
                            </h:outputText>

                            <h:outputText id="chargeAcqTtc" value="Charge ACQ TTC"
                                style="font-weight:bold" />
                            <h:outputText for="chargeAcqTtc"
                                value="#{demandeController.chargeAcqTtc}">
                                <f:convertNumber maxFractionDigits="2" />
                            </h:outputText>

                        </h:panelGrid>

                    </h:panelGrid>
                </p:tab>
                <p:tab title="Documents">
                    <h:panelGrid columns="5" cellpadding="2" width="100%"
                        style="text-align: center">

                        <h:commandButton title="Générer le devis" id="genDevis"
                            actionListener="#{demandeController.genererDevis}" immediate="true"
                            image="/resources/images/pdf.png"
                            style="vertical-align: middle">
                                Devis convention.pdf
                    </h:commandButton>

                        <p:commandButton title="Plans scannés" id="addPlansScannes"
                            style="vertical-align: middle; width: 130px;"
                            onclick="lazyload()" ajax="true" icon="ui-icon-search"
                            value="Plans scannés">
                            <f:ajax event="click"
                                listener="#{demandeController.onPlansClicked}" />
                        </p:commandButton>

                        <h:commandButton title="Générer le courrier" id="genCourrier"
                            action="#{demandeController.genererCourrier}" immediate="true"
                            image="/resources/images/pdf.png"
                            style="vertical-align: middle">
                                Courrier pour les acquereurs.pdf
                    </h:commandButton>

                        <h:commandButton title="Générer la fiche suiveuse"
                            id="genFicheSuiveuse" action="#{ficheSuiveuseController.init}"
                            immediate="true" 
                            image="/resources/images/excel.png"
                            style="vertical-align: middle">
                        Fiche suiveuse.xls
                        <f:setPropertyActionListener
                                value="#{demandeController.selectedDemande}"
                                target="#{ficheSuiveuseController.selectedDemande}" />
                        </h:commandButton>
                    </h:panelGrid>

                    <h:panelGrid columns="1" cellpadding="10" width="100%"
                        style="text-align: center" id="lazypanel">

                        <p:dataTable id="plansDT" var="plan"
                            value="#{demandeController.listPlansScannes}"
                            rendered="#{demandeController.plansClicked}"
                            emptyMessage="Pas de Plan">

                            <p:column headerText="Plans" style="width: 100%"
                                sortBy="#{plan.nom}">


                                <h:commandLink action="#{demandeController.displayFiles}"
                                    value="#{plan.nom}">
                                    <f:setPropertyActionListener value="#{plan}"
                                        target="#{demandeController.ficheToDisplay}" />
                                </h:commandLink>

                            </p:column>

                        </p:dataTable>
                    </h:panelGrid>

                    <p:remoteCommand name="lazyload" update="lazypanel"
                        actionListener="#{demandeController.onPlansClicked()}">
                    </p:remoteCommand>

                </p:tab>
            </p:accordionPanel>

        </p:dialog>
 </p:form>

修改

当我检查元素时,我得到了这个:     

<input id="detailsDemandesForm:displayDem:genDevis" type="image" title="Générer le devis" style="vertical-align: middle" name="detailsDemandesForm:displayDem:genDevis" src="/workflowtma-presentation-war/resources/images/pdf.png"></input>


                                    Devis convent…

1 个答案:

答案 0 :(得分:0)

快速浏览一下您的问题可能是list of such problems的第1号造成的。

特别是你对appendToBody="true"的使用让我怀疑Primefaces正在将你的对话移出你声明它的<p:form>。尝试在对话框中移动表格如下:

<p:dialog ...>
  <p:form>
    <!-- content goes here -->
  </p:form>
</p:dialog>