Duas listas em jsf

4 respostas
jsfprimefacesjava
guilhermebhte

Tenho esta lista

<p:selectOneMenu id="entidade" effect="fade" var="t" filter="true"
filterMatchMode="startsWith">
<f:selectItem itemLabel="Selecione uma entidade..." itemValue="" />
<f:selectItems
value="#{declaracaocontroller.buscaEntidadesUsuarioLogado}"
var="entidade" itemLabel="#{entidade.municpio.codigoNome}"
itemValue="#{entidade}" />
<p:column>
<h:outputText value="#{t.municpio.codigoNome}" />
</p:column>
</p:selectOneMenu>

Com a opção escolhida e sem o usuário clicar em um botão, preciso que carregue as informações segunda lista.

<p:outputLabel for="contribuinte" value="Contribuinte" />
<p:selectOneMenu id="contribuinte" effect="fade" var="t"
filter="true" filterMatchMode="startsWith">
<f:selectItem itemLabel="Selecione um contribuinte..." itemValue="" />
<f:selectItems
value="#{declaracaocontroller.buscaEntidadesUsuarioLogado}"
var="entidade" itemLabel="#{entidade.municpio.codigoNome}"
itemValue="#{entidade}" />
<p:column>
<h:outputText value="#{t.municpio.codigoNome}" />
</p:column>
</p:selectOneMenu>

Fiz algumas pesquisas e alguns testes mas sem sucesso.

4 Respostas

L

<p:ajax não resolve?
Tenta aí

guilhermebhte

Fiz assim:

<p:selectOneMenu id=“entidade” effect=“fade” var=“t” filter=“true”

filterMatchMode=“startsWith”>

<f:selectItem itemLabel=“Selecione uma entidade…” itemValue="" />

<f:selectItems value="#{declaracaocontroller.buscaEntidadesUsuarioLogado}" var=“entidade” itemLabel="#{entidade.municpio.codigoNome}" itemValue="#{entidade}" />

<p:column>

<h:outputText value="#{t.municpio.codigoNome}" />

</p:column>

<p:ajax event=“itemSelect” update=“outEntidadeEscolhida” />

</p:selectOneMenu>

Após escolher mostra este erro

guilhermebhte

Tentei implementar assim:

<p:selectOneMenu id="entidade" effect="fade" var="t" filter="true" filterMatchMode="startsWith" converter="entidadeConverter" value="#{declaracaocontroller.entidade}">
<f:selectItem itemLabel="Selecione uma entidade..." itemValue="" />
<f:selectItems value="#{declaracaocontroller.buscaEntidadesUsuarioLogado}"
 var="entidade" itemLabel="#{entidade.municpio.codigoNome}" itemValue="#{entidade}" />
<p:column>
<h:outputText value="#{t.municpio.codigoNome}" />
</p:column>
</p:selectOneMenu>

Mas nunca chama value="#{declaracaocontroller.entidade}"

Converter
package org.desif.converter;

import java.util.Map;

import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.ConverterException;
import javax.faces.convert.FacesConverter;

import org.desif.controller.desif.DeclaracaoController;
import org.desif.model.desif.EntidadeEntity;

@FacesConverter("entidadeConverter")
public class EntidadeConverter implements Converter {

	@SuppressWarnings("unchecked")
	@Override
	public Object getAsObject(FacesContext fc, UIComponent uic, String value) {
		if (value != null && value.trim().length() > 0) {
			try {
				DeclaracaoController service = (DeclaracaoController) fc.getExternalContext().getApplicationMap()
						.get("themeService");
				return ((Map<String, Object>) service.getEntidades()).get(Integer.parseInt(value));
			} catch (NumberFormatException e) {
				throw new ConverterException(
						new FacesMessage(FacesMessage.SEVERITY_ERROR, "Erro !!!", "Não existe esta entidade !"));
			}
		} else {
			return null;
		}
	}

	@SuppressWarnings("null")
	@Override
	public String getAsString(FacesContext fc, UIComponent uic, Object object) {
		if (!object.toString().isEmpty()) {
			return String.valueOf(((EntidadeEntity) object).getId());
		} else {
			return null;
		}
	}
}

Onde posso estar errando ?

guilhermebhte

Voltando a este tópico.

Fiz vários modificações, testes, mas não consegui.

Alguma sugestão ?

Criado 29 de março de 2017
Ultima resposta 3 de abr. de 2017
Respostas 4
Participantes 2