Problema usando <a4j:commandButton e <h:selectBooleanC

3 respostas
G
Pessoal, estou com um problema que não sei mais o que fazer. Na minha página, eu tenho um
<a4j:commandButton action="#{consultaAtividades.atualizaListaAtividades}" value="Filtrar" reRender="listaAtiv" id="filtrar"/>
que chama um metodo para uma lista e os filtros são o seguinte
<t:selectBooleanCheckbox id="filtroTeste"
								value="#{consultaAtividades.filtroTeste eq 'S'}" />
					<t:outputLabel value="teste" id="labelFiltroTeste" for="filtroTeste"/>	
					
					<t:selectBooleanCheckbox id="filtroHomologacao"
								value="#{consultaAtividades.filtroHomologacao eq 'S'}"  />
					<t:outputLabel value="homologação" id="labelFiltroHomologacao" for="filtroHomologacao"/>	
					
					<t:selectBooleanCheckbox id="filtroProducao"
								value="#{consultaAtividades.filtroProducao eq 'S'}"  />
					<t:outputLabel value="produção" id="labelFiltroProducao" for="filtroProducao"/>
, ou melhor deveriam se funcionassem com o commandButton, pois ele não chama o método que deveria chamar. E quando eu tiro os checkbox, chama direitinho o método com os valores certos. Detalhe também é que se eu uso um
<t:selectOneMenu id="codigoProjeto"
						value="#{consultaAtividades.filtroCodigoProjeto}">
						<f:selectItems value="#{consultaAtividades.listaProjetos}" />
						<a4j:support event="onchange" reRender="listaAtiv"
							ajaxSingle="true" action="#{consultaAtividades.atualizaListaAtividades}" ignoreDupResponses="true"/>
							 
					</t:selectOneMenu>
também chama o método com todos os parametros. Então só pode ser uma incompatibilidade do commandButton com os checkboxs. Se eu colocar o parametro bypassUpdates="true" no command button, ele chama o método mas nao passa os parametros. Alguem sabe o que pode ser isso?

obs.: estou usando escopo de request no managedbean, e ja passei pra session e nao adianta nada.

3 Respostas

G

percebi também que o problema está acontecendo com o próprio <t:commandButton id="testetete" value="Filtrar sem Ajax" action="#{consultaAtividades.atualizaListaAtividades}"/> do tomahawk, independente do ajax

G

pessoal, fiz uma pagina de teste, sem nada de mais complexo, sem ajax4jsf, e tb nao funciona. Quando eu tiro o checkbox funciona, ou seja, vai pro metodo correto. Segue a pagina abaixo:

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%> <%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%> <html> <head> <title>Teste</title> </head> <body> <f:view> <h:form> <t:selectBooleanCheckbox id="filtroTeste" value="#{teste.filtroTeste eq 'S'}" /> <t:outputLabel value="teste" id="labelFiltroTeste" for="filtroTeste" /> <h:commandButton id="filty" value="Filtrar sem Ajax jsf" action="#{teste.teste}" /> <t:commandButton id="testetete" value="Filtrar sem Ajax tomahawk" action="#{teste.teste}" /> </h:form> </f:view> </body> </html>

Deve ser alguma coisa q estou colocando de mais ou de menos.

G

descobri pessoal, no value do <t:selectBooleanCheckbox id="filtroTeste" value="#{teste.filtroTeste eq 'S'}" /> não usem uma expressão lógica, e sim uma propriedade do tipo boolean, que ele se encarreaga de todo o trabalho e não dá esse bug que mandei. Ficaria assim <h:selectBooleanCheckbox id="filtroTeste" value="#{teste.filtroTeste}" />

Criado 23 de agosto de 2007
Ultima resposta 23 de ago. de 2007
Respostas 3
Participantes 1