Método funciona apenas 1 vez em JSF

6 respostas
Diego_Adriano

Bem galera, eu aqui de novo ... resolvi um problema e apareceu outro ..
Bão .. seguinte, tenho um botão em minha tela que esta executando apenas 1 vez a chamada, se tendo efetuar uma nova chamada ele não funciona, porém se eu for em outro campo e fizer a chada via Ajax é executado normalmente ...Escopo View

Método:
<p:commandButton value="Próximo"   ajax="false" update="formProduto" actionListener="#{produtoBean.buscaP}" icon="ui-icon-arrowthick-1-e"/>
Code:
public Produto buscaP(ActionEvent event){
		try {
		
			if (produto.getCodigo() != null){
				if (produto.getCodigo() >= 1){
		
					ProdutoRepository pr = new ProdutoRepository(getEntityManager());
					setProduto(pr.produto(getProduto().getCodigo() + 1));
					
					if (getProduto().getCodigo() == null || getProduto().getCodigo() == 0){
						produto.setCodigo(produto.getCodigo() - 1);
						FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(
								FacesMessage.SEVERITY_INFO,"", "PRODUTO NÃO CADASTRADO"));
					}
					else{
						
					}
				}	
			}
		} catch (NullPointerException e) {
			e.printStackTrace();
		}
		return produto;
	}
Esse sempre funciona:
<p:inputText value="#{produtoBean.produto.codigo}"
		 size="6">
    <p:ajax event="blur" update="formProduto" listener="#{produtoBean.buscar}"/>		 
</p:inputText>
public Produto buscar(){
		try {
			if (getProduto().getCodigo() != null || getProduto().getCodigo() >0){
				
				ProdutoRepository pr = new ProdutoRepository(getEntityManager());
				setProduto(pr.produto(getProduto().getCodigo()));
				
				if (getProduto().getCodigo() == null || getProduto().getCodigo() == 0){
					produto = new Produto();
					FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(
							FacesMessage.SEVERITY_INFO,"", "PRODUTO NÃO CADASTRADO"));
				}
				else{
					
				}
			}
		} catch (NullPointerException e) {
			e.printStackTrace();
		}
		
		return produto;
	}

6 Respostas

darkan666

estou com o mesmo problema… :frowning:

Diego_Adriano

Estranho, tenho a mesma rotina em outro projeto e funciona normalmente …

darkan666

eu tbm tenho praticamente a mesma coisa em outra parte do projeto e funciona normal…

fbl.lucas

Tenta assim:

<p:commandButton value="Próximo"   ajax="false" update="formProduto" actionListener="#{produtoBean.buscaP}" icon="ui-icon-arrowthick-1-e" immediate="true"/>

pode estar ocorrendo algum problema de validação/conversão…da uma olhada no log para ver se ta saindo algo.

lele_vader

Porque o ajax = false ?
Não é uma requisição ajax ?

Diego_Adriano

Verdade, vou testar com o immediate.
Então, o botão não executa o Ajax … em Ajax é quando se esta dentro do text …

Criado 15 de agosto de 2012
Ultima resposta 15 de ago. de 2012
Respostas 6
Participantes 4