exercício desenvolvimento web

Veja:

javax.el.MethodNotFoundException' recebido ao invocar escuta de ação '#{conversorBean.grausCelsius}' para o componente 'converte' Method not found: conversorBean@7f4afaba.grausCelsius()
Como o erro diz, o método grausCelsius() não foi encontrado. Verifica o nome do método onde você o chama no .xhtml.

Paro de dar o erro mas quando eu aperto no botão em fez de converter fica 0.0

<p:commandButton value="ConverteTemperatura" ajax="false" id="converte" actionListener="#{conversorBean.converteGrausCelsiusParaFarenheit}" />

<p:commandButton value=“ConverteTemperatura” ajax=“false”
id=“converte1” actionListener="#{conversorBean.converteFarenheitParaGrausCelsius}" />

<p:commandButton value="ConverteTemperatura" ajax="false" id="converte1" actionListener="#{conversorBean.converteFarenheitParaGrausCelsius}" />

E quando eu aperto no botão do Farenheit só fica dando o valor 32

Posta o código dentro do [ code ], depois que você alterou.

[code]<?xml version="1.0" encoding="ISO-8859-1" ?>

<h:head>

ConversorTemperatura
</h:head>
<h:body>

<h:form>
	<p:column>
		<h:panelGrid>
			<h:outputText id="tempC" value="Tempuratura em Celsius: " />
			<p:inputText id="temperatura" value="#{conversorBean.grausCelsius}" />

			<p:commandButton value="ConverteTemperatura" ajax="false"
				id="converte" actionListener="#{conversorBean.converteGrausCelsiusParaFarenheit}" />

			<h:outputText id="temperaturaLabel"
				value="Temperatura em Farenheit: " />
			<p:inputText id="tempF" value="#{conversorBean.grausFarenheit}" />
			<p:commandButton value="ConverteTemperatura" ajax="false"
				id="converte1" actionListener="#{conversorBean.converteFarenheitParaGrausCelsius}" />
		</h:panelGrid>
	</p:column>
</h:form>

</h:body>

[/code]

Olá dentro da pasta WebContent/WEB-INF/
Tem um arquivo chamado faces-config.xml - nesse arquivo, você configurou o Managed Beans do seu projeto?
No seu caso ficaria algo assim:

 &lt;managed-bean&gt;
  &lt;managed-bean-name&gt;conversorBean&lt;/managed-bean-name&gt;
  &lt;managed-bean-class&gt;beans.conversorBean&lt;/managed-bean-class&gt;
  &lt;managed-bean-scope&gt;session&lt;/managed-bean-scope&gt;
 &lt;/managed-bean&gt;

Abs.,

Eu não fiz isso porque no meu conversonBean eu já coloquei @ManagedBean(name = “conversorBean”) e @SessionScoped

Olá MichelFreitas,
:oops: desculpe… Quando abri a sua mensagem tinha aparecido somente as perguntas da primeira página, daí não tinha visto que o problema já esta quase solucionado.

Vou dar uma olhada melhor no seu código, qualquer coisa posto aqui.

Abs.,

Obrigado pela ajuda Edjane. :smiley:

Ola

Olhei seu código, e pelo que pude perceber, você trocou as informações dos métodos:

 public void converteGrausCelsiusParaFarenheit() {  
          grausCelsius = (5 * (GrausFarenheit - 32)) / 9;  //aqui vc tem que converter graus celsius para Farenheit certo? então vc tem que colocar Farenheit =  ... ceulsius...
//ou seja, o que esta declarado no método converteFarenheitParaGrausCelsius();  GrausFarenheit = (grausCelsius * 1.8) + 32;  e vice-versa.
        FacesMessage menssagem = new FacesMessage(this.grausCelsius  //não esqueça de trocar as variáveis aqui
                + "Convertido de GrausCelsius para GrausFarenheit com Sucesso");  
        FacesContext.getCurrentInstance().addMessage(null, menssagem);  
        return;  //não há necessidade desse return aqui :-)
  }  
  
    public void converteFarenheitParaGrausCelsius() {  
        GrausFarenheit = (grausCelsius * 1.8) + 32;  
        FacesMessage menssagem = new FacesMessage(this.grausCelsius  
                + "Convertido de GrausFarenheit para GrausCelsius com Sucesso");  
        FacesContext.getCurrentInstance().addMessage(null, menssagem);  
        return;  
      }  

Abs.,

Obrigado novamente vou fazer os ajustes que você me falo qual quer coisa eu posto aqui.

Acho que deu certo agora, coloquei 4.5 em farenheit em celsius deu 40.1, coloquei 4.5 em celsius para converter em farenheit deu -15.277777777777779

[code] public void converteGrausCelsiusParaFarenheit() {

	GrausFarenheit = (5 * (grausCelsius - 32)) / 9;

	FacesMessage menssagem = new FacesMessage(this.GrausFarenheit
			+ "Convertido de GrausCelsius para GrausFarenheit com Sucesso");
	FacesContext.getCurrentInstance().addMessage(null, menssagem);
	return;

}

public void converteFarenheitParaGrausCelsius() {
	grausCelsius = (GrausFarenheit * 1.8) + 32;

	FacesMessage menssagem = new FacesMessage(this.grausCelsius
			+ "Convertido de GrausFarenheit para GrausCelsius com Sucesso");
	FacesContext.getCurrentInstance().addMessage(null, menssagem);
	return;

}

}
[/code]

Mas estou achando estranho quando converto de farenheit para celsius que fica um número bem grande.

Ola MichelFreitas,

O problema é que nesse caso o Fahrenheit não volta um valor redondo e ele esta definido como Double, para que vc consiga mostrar somente a quantidade de casa decimais necessárias é necessário formatar o resultado. Dá uma olhada nesses links aqui do forum, eles vão te ajudar :wink:


Abs.,

Obrigado pela ajuda eu consegui resolver, só estava trocando as fórmulas nos métodos.

Ok MichelFreitas!
Não esqueça de editar o título da mensagem para [RESOLVIDO]
T+ :wink:

Abs.,

Como eu edito ?

Clica em editar em cima do teu primeiro post, no ASSUNTO você adiciona: Resolvido. Se possível, posta o código para que outros usuários, caso tenham o mesmo problema, possa ajudá-los.

Abraço.