Solucionado (ver solução)
Solucionado
(ver solução)
8
respostas

Problema no método gravar() utilizando o action="#{livroBean.gravar}"

Meu eclipse está reclamando da seguinte linha, nos arquivos livro.xhtml e autor.xhtml:

        <h:commandButton value="Gravar" action="#{livroBean.gravar}" />

dizendo que o método gravar() deveria ser String ao invés de void...

8 respostas

O Eclipse está reclamando mas a aplicação deve funcionar. Isto não é um erro.

Para desabilitar a validação mais rígida das arquivos xhtml do Eclipse segue os passos seguintes:

No Menu Preferences -> Item Validation tire:

  1. Facelet HTML Validator
    1. JSF View Application Configuration Validator
    2. JSF View Validator

Isto é preciso pois o Eclipse quer que todos os métodos associados com o atributo action do componente h:commandButton devolvem obrigatoriamente um String (que não é preciso).

abs

Eu simplesmente apaguei a linha e digitei novamente, e agora a mensagem é apenas um alerta... quero entender o motivo, ao invés de simplesmente mandar o eclipse parar de reclamar rsrs

Para mim é bug do Eclipse ;)

pois é, porque ontem estava funcionando e agora tá assim... agora ele já está reclamando por causa de outra coisa... oh céus

solução!

Mas novamente: o Eclipse reclama mas isso não deve interferir na execução da aplicação. A aplicação deve funcionar.

No ponto de vista do JSF (e isso importa, pois Eclipse é apenas IDE) o método de uma action pode ser void.

abs

Entendi. Eu simplesmente baixei o eclipse de novo, importei o projeto e reconfigurei o tomcat. Resultado? funcionou :)

Excelente Marcos! Há mesmo versões de eclipse que consideram a EL (Expression Language) inválida quando ela realmente não é. Aliás, você esta usando o Eclipse Luna?

Sim, estou usando essa versão:

Eclipse Java EE IDE for Web Developers.

Version: Luna Release (4.4.0)
Build id: 20140612-0600

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software