Sto costruendo sito Web utilizzando primefaces 5 e server wildfly. Ho un problema con l'utilizzo del componente. Ho con in ogni riga come segue. Il pulsante ha definito la proprietà actionlistener che richiama il metodo backing bean e dopo di ciò dovrebbe visualizzare la finestra di dialogo. Ecco alcuni codici:Finestra di dialogo Primefaces 5.0 widgetvar
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:pt="http://java.sun.com/jsf/composite/components"
template="../templates/mainTemplate.xhtml">
<ui:define name="title"></ui:define>
<ui:define name="main-content">
<h:form>
<p:dataTable id="dataTable" value="#{bean.list}" var="item"
styleClass="hide-column-header small-text">
<!-- some columns -->
<p:column style="width: 18%; text-align: center;">
<p:commandButton value="Open dialog" actionListener="#{bean.buttonListener(item)}" oncomplete="PF('dlg').show();"/>
</p:column>
</p:dataTable>
</h:form>
<p:dialog id="dialog" widgetVar="dlg" resizable="false" modal="true"
header="Dialog">
<h:form> <!-- some inputs --> </h:form>
</p:dialog>
</ui:define>
</ui:composition>
Ma non funziona. Controllo la console di Chrome e ho ricevuto il messaggio "Widget per var 'Widget per var' dlg 'non disponibile!" quando si fa clic sul pulsante, ho controllato "Primefaces.widgets" e in effetti non c'è alcun widget per la mia finestra di dialogo. Qualcuno mi può aiutare con questo?
// modifica
Ok, finalmente l'ho fatto funzionare. Per tentativi ho trovato questa riga nel mio modello:
<script type="text/javascript" src="//code.jquery.com/jquery-2.1.1.min.js"></script>
Dopo averlo rimosso, tutto ha funzionato come previsto. Penso che sia perché le primeface hanno una propria versione di jquery, giusto?
Puoi provare PF (': DLG')? – adam0404
Il tuo caso è molto semplice, dovrebbe funzionare. Controlla se hai errori javascript sul caricamento della pagina. –
puoi anche postare il tuo codice 'bean'? – alex