[Resolvido] JSF - Dúvida em Properties

Olá.

Vejo que temos novos estudantes em JSF. Isso é bom.

Eu também estou começando mas estou com um problema em setar valores no properties.

código:

inputname.jsf

[code]<%@ taglib uri=“http://java.sun.com/jsf/html” prefix=“h” %>
<%@ taglib uri=“http://java.sun.com/jsf/core” prefix=“f” %>
<f:loadBundle basename=“files.koderzone.messages” var=“msg”/>

Input Form

[/code]

welcome.jsf

[code]<%@ taglib uri=“http://java.sun.com/jsf/html” prefix=“h” %>
<%@ taglib uri=“http://java.sun.com/jsf/core” prefix=“f” %>
<f:loadBundle basename=“files.koderzone.messages” var=“msg”/>

Welcome

,  

[/code]

UserNameBean.java

[code]/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */

package files.koderzone;

/**
*

  • @author koderzone
    */
    public class UserNameBean {
    String userName;

    /**

    • @return User Name
      */
      public String getUserName() {
      return userName;
      }

    /**

    • @param User Name
      */
      public void setUserName(String name) {
      userName = name;
      }
      }
      [/code]

messages.properties

title=Enter your name page welcome=Welcome header=JSF 1.2 Tutorials your_name=Enter Your Name: button_text_ok=OK Welcome=Welcome jsf_world= to JSF 1.2 World!

Não importa nada que eu faça, sempre vai mostrar este erro na página ao submeter o formulário:

javax.servlet.ServletException: /exemplos/properties/inputname.jsp(16,0) '#{UserBean.userName}' Target Unreachable, identifier 'UserBean' resolved to null javax.faces.webapp.FacesServlet.service(FacesServlet.java:256) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)

Tem alguma coisa errada com a expressão ‘#{UserBean.userName}’ ?

Fala dark123 blz?
Sim tem muita gente estudando/trabalhando com JSF, e eu sou um deles também assim como você…mas vamos lá.

Não tem problema nenhum, desde que você tenha declarado assim no faces-config.xml, e pelo erro está com cara de que faltou alguma configuração, pois não vi nada demais no código.
Espero ter ajudado…desculpa se falei alguma besteira…ainda estou sob efeito do carnaval :lol:

Blz Dark123,

Seu managed bean está com o seguinte nome

public class UserNameBean {  

e sua EL está assim

"#{UserBean.userName}"

Verifique no seu faces.config.xml como você declarou seu managed Bean talvez você está usando #{UserNameBean}

[ ]'s

Fala pessoal.
Obrigado por participarem deste tópico.

Como vi, a solução era bem simples: problema de configuração mesmo, e no faces-config.xml.

Eu uso o NetBeans como IDE, pois não possuo nenhum editor que me facilite a vida, então esqueci de mapear o xml.

<managed-bean> <managed-bean-name>UserBean</managed-bean-name> <managed-bean-class>files.koderzone.UserNameBean</managed-bean-class> <managed-bean-scope>request</managed-bean-scope> </managed-bean>

Pronto, assim tudo deu certo:

Fugindo um pouco do assunto, vocês poderiam me dizer se é realmente necessário mapear todas as páginas no faces-config?
Ou apenas as que usam tags JSF em submissões de formulários como neste caso?!

<navigation-rule> <from-view-id>/exemplos/properties/inputname.jsp</from-view-id> <navigation-case> <from-outcome>welcome</from-outcome> <to-view-id>/exemplos/properties/welcome.jsp</to-view-id> </navigation-case> </navigation-rule>

[quote]* PS: Obrigado pela ajuda de todos.
Foram fundamentais para eu perceber onde estava o problema.[/quote]

OK, já entendi.
Li um pouco a respeito no fórum.

[]s a todos

Estava com o mesmo problema.
Aqui resolvi da seguinte maneira
No web.xml a classe mapeada tem que estar da seguinte forma:

      <managed-bean-name>user</managed-bean-name>
      <managed-bean-class>demo.User</managed-bean-class>

Se o nome da classe é User no managed-bean-class tem que estar escrito User