Ola pessoal,
Estou com um problema com o Autocomplete aqui, ele não esta atualizando meus componentes quando seleciono um “projet”, ele deveria disparar o ajax pra atualizar os campos, mas não esta fazendo isso.
Meus codigos estão aqui embaixo:
.xhtml
[code]p:panel header=“Actviter le Projet”>
<h:outputLabel value="#{bundle.searchProject} " />
<p:autoComplete id=“autoCompleteProjet” forceSelection=“true"
minQueryLength=“3” value=”#{projetMB.projet}“
completeMethod=”#{projetMB.completeProjet}" var=“projet"
itemLabel=”#{projet.nomProjet}" dropdown=“true” >
<p:ajax event=“itemSelect” listener="#{projetMB.handleSelect}" update=“nomProjet nombreHeure dateDemarrage typeProjet” />
</p:autoComplete>
<p:separator />
<!--############# Donées du Projet #############-->
<div id="idPanel">
<h:panelGrid columns="2">
<p:outputLabel for="nomProjet" value="#{bundle.nomProjet} " />
<p:inputText id="nomProjet" value="#{projetMB.projet.nomProjet}"
required="true">
<f:validateLength minimum="3" />
</p:inputText>
<p:outputLabel for="nombreHeure"
value="#{bundle.nombreHeuresProjet} " />
<p:inputText id="nombreHeure"
value="#{projetMB.projet.nbHeuresProjet}" required="true">
<pe:keyFilter mask="num" for="nombreHeure" />
</p:inputText>
<h:outputLabel for="dateDemarrage"
value="#{bundle.dateDemarrageProjet} " />
<p:calendar id="dateDemarrage"
value="#{projetMB.projet.dateDebutProjet}" required="true"
pattern="dd/MM/yyyy" showOn="button" navigator="true"/>
<h:outputLabel for="typeProjet" value="Type du projet: " />
<h:selectOneListbox id="typeProjet"
value="#{projetMB.projet.type}">
<f:selectItems value="#{projetMB.typeProjetList}" var="pr"
itemLabel="#{pr.typeLabel}" itemValue="#{pr.typeValue}" />
</h:selectOneListbox>
</h:panelGrid>
</div>[/code]
Codigo para o autocomplete e o handleSelect para tratar o evento (o handleSelect não funciona, da erro de conversão de string para o tipo Projet).
projetMB (scope: ViewScope)
[code] public List completeProjet(String query) {
Boolean statusProjet = false;
List queryResult = new ArrayList();
if (projets == null) {
projetFacade = getProjetFacade();
projets = projetFacade.findProjetWithStatus(statusProjet);
}
for (Projet p : projets) {
if (p.getNomProjet().toLowerCase().contains(query)) {
queryResult.add§;
}
}
return queryResult;
}
public void handleSelect (SelectEvent event) {
this.projet = (Projet) event.getObject();
}[/code]
Erro do handleSelect
SEVERE: Error Rendering View[/pages/protected/admin/function/Projet/activerProjet.xhtml]
java.lang.ClassCastException: com.alstom.ems2.model.Projet cannot be cast to java.lang.String
at org.primefaces.component.autocomplete.AutoCompleteRenderer.encodeSuggestionsAsList
Alguém saberia o motivo do erro e poderia me ajudar, fazendo favor?
Muito obrigado!!