JSF 2.0 ne peut pas afficher de boîte de dialogue à partir de primefaces

Dernièrement, je vais avoir beaucoup de problèmes avec les composants primefaces, je dot savoir pourquoi. J'utilise glassfishV3.0 et mon primefaces version 2.2.1
Mon problème maintenant est que je ne peux pas faire la p:boîte de dialogue de primefaces rendu quand je clique sur une ligne du tableau. Je ne almos exactement comme il est fait dans l'exemple: http://www.primefaces.org/showcase/ui/datatableComplex.jsf

Je pense que ma question a quelque chose à faire avec un peu de configuration, car je suis aussi à avoir des problèmes avec d'autres composants primefaces. Quelqu'un peut-il me donner un coup de main s'il vous plaît et dites-moi ce que je suis manquant pour pouvoir utiliser des composants primefaces comme thisone avec pas de problèmes?
Voici le code:

LE JSF:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:t="http://myfaces.apache.org/tomahawk"
xmlns:p="http://primefaces.prime.com.tr/ui">
<ui:composition template="WEB-INF/templates/BasicTemplate.xhtml">
<ui:define name="resultsForm">
<h:form enctype="multipart/form-data">
<h:inputText id="search" value="" /><h:commandButton value="search"/>               
<p:dataTable var="garbage" value="#{resultsController.allGarbage}"  dynamic="true" paginator="true" paginatorPosition="bottom" rows="10"  
paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink}  {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"  
rowsPerPageTemplate="5,10,15" selection="#{resultsController.garbage}" selectionMode="single"  
onRowSelectUpdate="display" onRowSelectComplete="fileDialog.show()">            
<p:column sortBy="#{garbage.filename}" parser="string" filterBy="#{garbage.filename}" filterMatchMode="startsWith">  
<f:facet name="header">  
<h:outputText value="Filename" />  
</f:facet>  
<h:outputText value="#{garbage.filename}" />
</p:column> 
<p:column filterBy="#{garbage.description}" filterMatchMode="contains">  
<f:facet name="header">  
<h:outputText value="Description" />  
</f:facet>  
<h:outputText value="#{garbage.description}" />  
</p:column> 
<p:column sortBy="#{garbage.uploadDate}" parser="string">  
<f:facet name="header">  
<h:outputText value="Upload date" />  
</f:facet>  
<h:outputText value="#{garbage.uploadDate}" /> 
</p:column>                
</p:dataTable> 
<p:dialog header="Modal Dialog" widgetVar="fileDialog" modal="true" height="200">    
<h:panelGrid id="display" columns="2" cellpadding="4">  
<h:outputText value="FileName:" />  
<h:outputText value="#{garbage.filename}" />  
<h:outputText value="Upload date:" />  
<h:outputText value="#{garbage.uploadDate}" />  
<h:outputText value="Description" />  
<h:outputText value="#{garbage.description}" /> 
</h:panelGrid>           
</p:dialog> 
</h:form>
</ui:define>
</ui:composition>
</html>

LE Managed bean

@ManagedBean
@ViewScoped
public class ResultsController implements Serializable{
@EJB
private ISearchEJB searchEJB;
private Garbage garbage;
public List<Garbage> getAllGarbage() {
List<Garbage> tmpGarbage = new ArrayList<Garbage>();
for(Garbage g :searchEJB.findAllGarbage()) {
tmpGarbage.add(g);
}
return tmpGarbage;
}
public Garbage getGarbage() {
return garbage;
}
public void setGarbage(Garbage garbage) {
this.garbage = garbage;
}   

La JSF avant est un composite de page que j'utilise à l'intérieur de ce modèle

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>title</title>
<script type="text/javascript">
PrimeFaces.widget.Uploader.prototype._createPostParams = function() {
var b = {};
b[PrimeFaces.PARTIAL_REQUEST_PARAM] = true;
b[PrimeFaces.PARTIAL_PROCESS_PARAM] = this.id;
b[PrimeFaces.PARTIAL_SOURCE_PARAM] = this.id;
b[PrimeFaces.VIEW_STATE] = PrimeFaces.ajax.AjaxUtils.encodeViewState();
if (this.cfg.update) {
b[PrimeFaces.PARTIAL_UPDATE_PARAM] = this.cfg.update
}
var a = PrimeFaces.getCookie("JSESSIONID");
if (this.cfg.script.indexOf("jsessionid") == -1) {
paramIndex = this.cfg.script.indexOf('?');
if (paramIndex != -1) {
this.cfg.script = this.cfg.script.substring(0, paramIndex)
+ ";jsessionid=" + a
+ this.cfg.script.substring(paramIndex);
} else {
this.cfg.script = this.cfg.script + ";jsessionid=" + a;
}
}
b['cid'] = "#{javax.enterprise.context.conversation.id}";
return b;
};
PrimeFaces.widget.Uploader.prototype.createPostParams =                  PrimeFaces.widget.Uploader.prototype._createPostParams;
</script>
<script type="text/javascript" src="/primefaces_resource/2.1/yui/datasource/datasource-min.js"></script> 
<script type="text/javascript"  src="/primefaces_resource/2.1/primefaces/paginator/paginator.js"></script> 
<script type="text/javascript" src="/primefaces_resource/2.1/yui/datatable/datatable-min.js"></script> 
<script type="text/javascript" src="/primefaces_resource/2.1/primefaces/datatable/datatable.js"></script> 
<script type="text/javascript" src="/primefaces_resource/2.1/yui/swf/swf-min.js"></script> 
<script type="text/javascript" src="/primefaces_resource/2.1/yui/charts/charts-min.js"></script> 
<script type="text/javascript" src="/primefaces_resource/2.1/primefaces/charts/charts.js"></script>
</h:head>
<body> 
<ui:insert name="resultsForm"/>
</body>
</html>

Mon web.xml configuration

    <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/pages/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>pages/index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>Resource Servlet</servlet-name>
<servlet-class>org.primefaces.resource.ResourceServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Resource Servlet</servlet-name>
<url-pattern>/primefaces_resource/*</url-pattern>
</servlet-mapping> 
<filter>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<filter-class>org.primefaces.webapp.filter.FileUploadFilter
</filter-class>        
</filter>
<filter-mapping>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>

Dans le tableau i ci-dessus everithing, tout le sortBy de la fonction et de la p:dialogue ne marche pas.
C'est un message qui s'affiche à l'éclipse de la console lorsque j'actualise la page:

SÉVÈRE: ligne 1:61 aucune alternative viable au caractère ';'

Je ne comprends pas ce que cela veut dire, je pense que j'ai une sorte de problème de configuration plutôt que d'une erreur de syntaxe. Mal être vraiment heureux si quelqu'un pouvait m'aider à résoudre ce s'il vous plaît.

Quant à la boîte de dialogue de la seule différence de la primefaces vitrine est l'absence de rowSelectListener dans votre code. C'est peut-être un point de départ pour de nouvelles investigations. Ou essayez d'appeler la boîte de dialogue de l'extérieur de la table avec un commandLink pour vérifier si il est affiché à tous.
Oui, je peux appeler la boîte de dialogue de l'extérieur de la table avec un bouton comme ceci: <p:commandButton value="Test" onclick="fileDialog.show();" type="bouton"/> Ça marche, mais ce qui est mal, pourquoi il ne fonctionne quand je clique sur une ligne de la table?
Essayez d'ajouter un rowSelectListener et vérifier si elle est appelée.
Non, il ne fonctionne pas, j'ai essayé ceci: rowSelectListener="#{fileDialog.show()}" Sont peut-être certaines des autres options inquiétant?: sélection="#{resultsController.poubelle}" selectionMode="simple" mise à jour="afficher" rowSelectListener="#{fileDialog.show()}"
Essayez de mettre la p:dialog à l'extérieur de la h:form de votre "p:dataTable" et de voir si le fixer? Si non je vais essayer de recréer votre problème sur mon ordinateur

OriginalL'auteur sfrj | 2011-03-30