Como acionar o action no jsf com a tecla enter

Olá pessoal. Estou com um problema quando envio dados de um form com a tecla “enter” utilizando jsf. Os dados são enviados normamlmente mas o action da tag <h:commandButton action="#{meuBean}" /> não é acionado. O action só funciona quando eu clico no butão com o mouser. Tem alguma forma de acionar o action também quando eu teclo enter? já pesquisei em vários lugares e até agora não encontrei uma solução.

[code]<h:form>

&lt;h:panelGrid columns="2"&gt;
	&lt;h:outputText value="Codigo: " /&gt;
		&lt;h:inputText value="#{produtoMB.produto.codigo}" /&gt;
&lt;/h:panelGrid&gt;
			
          &lt;a4j:commandButton  value="Enviar" action="{produtoMB.buscaId}" /&gt;		

</h:form> [/code]

http://www.jboss.org/file-access/default/members/jbossrichfaces/freezone/docs/devguide/en/html/a4j_commandButton.html

Da uma olhada nos atributos accesskey e onkeypress.

Não estou certo quanto ao accesskey. Mas usando o onkeypress, você pode atribuir uma chamada javascript. Nesse método javascript você verifica se a tecla pressionada é o ENTER, tem muito script de exemplo assim na internet.

cara se voce estiver usando jsf com richfaces tem um componente chamado hotkey que faz isto
um exemplo disto seria <rich:hotkey selectot="idInputText key=“return” handler=“iddobotao.click();” >
nesse site tem exemplos
http://livedemo.exadel.com/richfaces-demo/richfaces/hotKey.jsf

Segui a dica do lionels e resolvi o problema usando richfaces. O código ficou assim:
.
.
.

&lt;h:form&gt;
		&lt;rich:panel header="Busca"&gt;
			&lt;h:outputText value="Entre com o código:" /&gt;

			&lt;h:inputText id="codigo" value="#{produtoMB.produto.codigo}"/&gt;

			&lt;rich:hotKey selector="#codigo" key="return" 
                            handler="#{rich:element('buscar')}.onclick();return false;"/&gt;

			&lt;a4j:commandButton action="#{produtoMB.buscaId}" value="Buscar" 
			    reRender="output" id="buscar"/&gt;
		&lt;/rich:panel&gt;
	&lt;/h:form&gt;

.
.
.

Valeu pessoal :slight_smile:

[quote=tonkleber]Segui a dica do lionels e resolvi o problema usando richfaces. O código ficou assim:
.
.
.

&lt;h:form&gt;
		&lt;rich:panel header="Busca"&gt;
			&lt;h:outputText value="Entre com o código:" /&gt;

			&lt;h:inputText id="codigo" value="#{produtoMB.produto.codigo}"/&gt;

			&lt;rich:hotKey selector="#codigo" key="return" 
                            handler="#{rich:element('buscar')}.onclick();return false;"/&gt;

			&lt;a4j:commandButton action="#{produtoMB.buscaId}" value="Buscar" 
			    reRender="output" id="buscar"/&gt;
		&lt;/rich:panel&gt;
	&lt;/h:form&gt;

.
.
.

Valeu pessoal :slight_smile: [/quote]

Quando usei o a4j:commandButton deu um problema esquisito na navegacao. A pagina seguinte perdia toda a configuraçao e as acoes dos botoes e links. nao deu esse problema com vc?

Não da pra te dizer porque quando eu uso a4j:commandButton é pra carregar o resultado na mesma página utilizando o recurso ajax reRender=“idDoComponente” atualizando somente a área com a “id” indicado no reRender.
Quando mostro o resultado em outra página eu uso h:commandButton mesmo.

Valeu pela dica, me ajudou tb, funcionou redodinho! :smiley:

[]'s
t++