Tenho um form com o escopo de sessão:
<managed-bean>
<description>formCidade</description>
<managed-bean-name>formCidade</managed-bean-name>
<managed-bean-class>com.xxx.form.FormCidade</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
e uma datable no jsp que mostra os resultados de uma consulta, e para cada registro, um botão editar (que seta no formCidade a cidade a ser editada)
<t:dataTable id="cidades" styleClass="gridBusca" value="#{formCidade.cidades}" var="cidade"
columnClasses="descricao,sigla,estado,editar" width="550">
<t:column>
<f:facet name="header">
<h:outputText value="Cidade" />
</f:facet>
<h:outputText value="#{cidade.descricao}" />
</t:column>
<t:column styleClass="semBorda">
<f:facet name="header">
<h:outputText value="Ações" />
</f:facet>
<t:commandButton styleClass="submit" type="submit" action="#{formCidade.editar}"
value="Editar" title="Editar" />
</t:column>
</t:dataTable>
tudo funcionando 100%… aí precisei mudar o escopo do form para request…
fiz algumas modificações (gravar alguns dados na sessão) e (quase) tudo funcionou bem…
depois de trocar para request, este commandButton ‘Editar’ não chama mais o método editar do formCidade
ao clicar no botão é chamado apenas o construtor do formCidade mas o método editar não é chamado em seguida.
Notas:
1 - estou utilizando:
myfaces-api-1.1.4.jar
myfaces-impl-1.1.4.jar
tomahawk-1.1.3.jar
2 - eu já tentei trocar os componentes do tomahawk (t) pelos outros (h)
mas não adiantou
3 - tentei com commandLink… tb não funcionou
4 - o método editar é público, retorna String, e não leva parâmetros
5 - os outros botões, como o de consulta, que estão fora da datable funcionam normalmente…
6 - Tentei com immediate=“true” tb nao deu… =/
até onde eu sei… se eu tiver uma datable com value="#{formCidade.cidades}" var=“cidade”, e colocar um commandButton para cara registro, ao clicar em um botão (de um determinado registro) o jsf automaticamente coloca a entidade daquela linha como um atributo na request, com o nome da propriedade var (no caso “cidade”)
será que ele esta tentando fazer isso, e (por algum motivo) não esta conseguindo ? :roll:
gracias