Estou com o seguinte problema, toda vez que clico no meu h:commandButton, o h:form está sendo submetido, com isso ele rerenderiza toda a página.
Já tentei usar o f:ajax para fazer o botão rerenderizar somente um dos componentes.
É um código de estudo apenas, que estou tentando fazer com o JSF 2.0.
Agradeço desde já.
Segue o código:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"xmlns:f="http://java.sun.com/jsf/core"xmlns:h="http://java.sun.com/jsf/html"><head><title>teste</title></head><h:body><h:form><h:commandButtonid="butaoNome"action="#{myBean.exmetodo}"value="teste"></h:commandButton><h:outputTextid="nome1"value="#{myBean.nome1}"/><h:outputTextid="nome2"value="#{myBean.nome2}"/></h:form></h:body></html>
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"xmlns:f="http://java.sun.com/jsf/core"xmlns:h="http://java.sun.com/jsf/html"><head><title>teste</title></head><h:body><h:form><h:commandButtonid="butaoNome"action="#{myBean.exmetodo}"value="teste"><f:ajaxrendered="form:nome1"listener="#{myBean.exmetodo}"/></h:commandButton><h:outputTextid="nome1"value="#{myBean.nome1}"/><h:outputTextid="nome2"value="#{myBean.nome2}"/></h:form></h:body></html>
como estou fora de meu comp. , não tenho certeza que seja rendered, ou update... mas é um dos dois o atributo a ser usado.
Ver ai se funfa
S
sapato42
O nome é “render”, mas ainda sim não funciona. E também fiquei na dúvida de onde colocar a chamada do método, vc colocou no ajax, e no botão.
Eu descobri como fazer o botão não dar submit, tenho que colocar type=“button”, mas quando faço isso ele nem seque chama o método.
Hebert_Coelho
Ao chamar o Ajax passando o @this você envia o botão.
Passe apenas quem você quer renderizar. Coloque um id em um input por exemplo e nele será exibido o que você quer.
Ele chama o método, porem ele reRenderiza o nome1 e o nome2, e também da um submit no Form.
Se eu coloco o “type=button”, no commandButton, ele não da um submit, porém ele não chama o método.
:S
Hebert_Coelho
Tira o execute e deixa apenas o render.
<f:ajaxexecute="nome1"render="nome1"></f:ajax>
S
sapato42
Retirei o execute, e não funcionou. Ele prosseguiu em dar submit no form.
Coloquei o ‘type=button’ para ele não dar submit, ai ele não chama o método Oo.
To quase baixando a biblioteca do aj4, e usando ele.
Eu retirei esse aí do livro Core Java Server Faces. Esse aí funciona! =D
ViniGodoy
Por favor, não banalize as tags informativas colocando coisas óbvias como [Problema], [Ajuda] ou [Dúvida].
Não é necessário falar o óbvio, principalmente com tanto destaque. Deixe o destaque para coisas importantes.