Sou iniciante em JSF e estou tendo um problema com formulários. Não consigo obter os dados que são informados nos campos do formulário, por exemplo:
<h:outputText value="NOME:" />
<h:inputText value="#{user.nome}" >
<f:validateLength minimum="3" maximum="30" />
</h:inputText>
<h:commandButton value="Login" action="login" />
Esse fragmento de código seria usado para pegar o nome de um usuário e passar para uma página posterior, após clicar sobre o botão, mas quando clico sobre o botão o seguinte erro é mostrado:
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Base is null: user
javax.faces.webapp.FacesServlet.service(FacesServlet.java:154)
root cause
javax.faces.el.PropertyNotFoundException: Base is null: user
org.apache.myfaces.el.ValueBindingImpl.resolveToBaseAndProperty(ValueBindingImpl.java:463)
org.apache.myfaces.el.ValueBindingImpl.getType(ValueBindingImpl.java:175)
org.apache.myfaces.shared_impl.renderkit._SharedRendererUtils.findUIOutputConverter(_SharedRendererUtils.java:58)
org.apache.myfaces.shared_impl.renderkit.RendererUtils.findUIOutputConverter(RendererUtils.java:310)
org.apache.myfaces.shared_impl.renderkit.RendererUtils.getConvertedUIOutputValue(RendererUtils.java:604)
org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.getConvertedValue(HtmlTextRendererBase.java:191)
javax.faces.component.UIInput.getConvertedValue(UIInput.java:396)
javax.faces.component.UIInput.validate(UIInput.java:350)
javax.faces.component.UIInput.processValidators(UIInput.java:184)
javax.faces.component.UIForm.processValidators(UIForm.java:73)
javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:627)
javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:149)
org.apache.myfaces.lifecycle.ProcessValidationsExecutor.execute(ProcessValidationsExecutor.java:32)
org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:95)
org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:139)
Não consigo entender onde está o erro. O meu arquivo faces-config.xml está configurado para a classe:
<managed-bean>
<managed-bean-name>user</managed-bean-name>
<managed-bean-class>usuario.User</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
e a minha class possui somente a variável ‘nome’ e os métodos ‘getNome’ e ‘setNome’.
Alguém poderia me dá uma ajuda. Obrigado.