2011-10-24 3 views
1

Je travaille avec 3.0 M3. quand je déclare mes beans gérés dans faces-config.xml, cela fonctionne parfaitement, mais quand j'essaie les mêmes codes avec annotations @Managed bean @Request Scoped, il dit que la cible est inaccessible.Primefaces @managedBean

J'ai essayé sur 2.2 également, mais il dit le même problème encore. J'utilise le poisson verre v3

@ManagedBean 
@SessionScoped 
public class Profile implements Serializable{ 


    private String userId; 
    private String password; 
    private int code; 

    public int getCode() { 
     return code; 
    } 

    public void setCode(int code) { 
     this.code = code; 
    } 

    private String name; 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

Voici comment je les appelle

<h:form>   
    <p:panel style="margin-top: 200px;margin-left: 300px;margin-right: 300px;" header="Welcome"> 
     <h:outputText value="Your Code ? "/> 
     <h:inputText required="true" requiredMessage="Enter user id" value="#{Profile.userId}"/> 
     <h:outputText value="Password "/> 
     <h:inputSecret required="true" requiredMessage="Enter password id" value="#Profile.password}"/> 
     <h:commandButton action="#{Profile.varify}" value="Next"/> 
    </p:panel> 
</h:form> 

Répondre

2

profil doit être en minuscule, et vérifier la syntaxe en ligne de mot de passe

2

Si vous n'utilisez pas nom de l'annotation @ManagedBean, vous devez vous référer au bean avec la première lettre convertie en minuscule.

De l'@ManagedBean javadoc:

La valeur du nom() attribut est considéré comme le nom de haricots gérés. Si la valeur de l'attribut name est non spécifiée ou est la chaîne vide, le nom-bean-géré est dérivé de prendre la partie nom de classe non qualifié du nom de classe complet et convertissant le premier caractère en minuscule. Par exemple, si l'annotation ManagedBean est sur une classe avec la classe entièrement qualifiée , nom com.foo.Bean et qu'il n'y a pas d'attribut de nom sur l'annotation, le nom de bean géré est considéré comme bean. La classe entièrement qualifiée nom de la classe à laquelle cette annotation est attachée est considérée comme la classe managed-bean.

0

Puisque vous utilisez jsf2

vous pouvez effectuer les opérations suivantes - donner un nom à la fève ...

@ManagedBean(name="Profile") 
@SessionScoped 
public class Profile implements Serializable{ 
} 
0

Vérifiez que l'emballage d'importation de @SessionScoped, il doit être import javax .faces.bean.SessionScoped; et donnez également le nom à ManageBean @ManagedBean (name = "Profile")

Questions connexes