Estou desenvolvendo com primefaces JSF2 e Spring e estou com problemas ao utilizar o PickList, para ser mais claro no Converter, quando eu adiciono o componente na minha view…
<p:pickList value="#{usuarioController.listaEmpresas}"
var="empresa" iconOnly="true" effect="drop"
itemLabel="#{empresa.nomeFantasia}"
itemValue="#{empresa}" converter="empresaPickListConverter"
showSourceControls="true" showTargetControls="true">
<f:facet name="sourceCaption">Disponivel</f:facet>
<f:facet name="targetCaption">Selecionadas</f:facet>
</p:pickList>
e mando salvar o mesmo nao salva nenhuma alteracao no objeto, e tambem nao dispara nenhuma exception ou erro, ja setei o primefaces para DEBUG e nao producao mas mesmo assim nada eh mostrado, como faço para verificar todas as saidas do primefaces?
Coloca essa configuração no web.xml:
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
Entao ja esta com essa config no web.xml, mas mesmo assim nao dispara nada quando tento usar o pickList
Então altera a configuração do LOG do teu servidor para DEBUG.
vou verificar o log, pois no console nao mostrou nada.
verifiquei o log, nada de exception, simplesmente nao chama o metodo salvar no meu MB
apaguei tudo a parte da empresa e estou fazendo a relacao com outro objeto, nao consigo fazer esse picklist funcionar
estou fazendo o converter da seguinte maneira
[code]@FacesConverter(value = “roleConverter”, forClass = Role.class)
public class RoleConverter implements Converter {
private static Map<Integer, Role> cache = new HashMap<Integer, Role>();
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
if (value == null && value.equals("0")) {
return null;
}
try {
return cache.get(Integer.parseInt(value));
} catch (NumberFormatException e) {
throw new ConverterException("Invalid value: " + value, e);
}
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object object) {
Role role = (Role) object;
Integer id = role.getId();
if (id != null) {
cache.put(id, role);
return String.valueOf(id.intValue());
} else {
return "0";
}
}[/code]
esta aparecendo os dados corretamente, mas na hora de salvar verifico a lista de selecionados e nao ha mudança, mas pelo menos agora esta chamando o salvar
vou abrir um outro post falando sobre o pickList