JSF - Target Unreachable

Amigos,

tenho isso:

[code]
public class UserMBean{

private User user;
}

public class User {
private String uSRLoginID;
//getters e setters
}[/code]

no jsp:

<h:inputText value="#{user.user.uSRLoginID}"

no faces-config:

<managed-bean>
        <managed-bean-name>user</managed-bean-name>
        <managed-bean-class>UserMBean<managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
        </managed-bean>

Estou tendo o seguinte erro:

#{user.user.uSRLoginID}’ Target Unreachable, ‘user’ returned null

Porquê isso?

Grato

Na declaração do seu atributo User

private User user;

Inicia ele também:

private User user = new User();

Se você estiver com dúvida o porque você deve fazer isso, dê uma estudada melhor no ciclo de vida dos componentes e managedBean do JSF. É meio confuso, mas certamente você irá entender o porque :slight_smile:

Uma dúvida:é arquiteturalmente correto eu fazer:

public class User{

   private String id;

public String inserir(){
  //chama persistencia
   }
}


<h:inputText value="#{user.id}">
<h:commandButton action="#{user.inserir}">

?

[quote=raf4ever]Uma dúvida:é arquiteturalmente correto eu fazer:

public class User{

   private String id;

public String inserir(){
  //chama persistencia
   }
}


<h:inputText value="#{user.id}">
<h:commandButton action="#{user.inserir}">

?[/quote]

É correto sim, inclusive é dessa forma que eu trabalho.

Claro que você pode ter outras layers, como domain layer, DAO layer, service Layer (embora o ManagedBean já pode ser considerado uma service layer na maioria dos casos), se for usar EJB tem a EJB layer e assim vai.

Mas no geral, você está trabalhando de forma correta sim.