2011-01-14 5 views
0

Hy tous,JSF bean géré

je suis nouveau avec tout cela, et probablement ce serait une question stupide, mais

j'ai un haricot géré qui a une fleur de propriété - String, et Liste de propriétés - bouquet

dans un xhtml J'ai un h: inputText dans lequel vous devez taper un nom de fleur et quand vous cliquez sur ah: bouton de commande il appelle une action # {managedBEan.addFlower}, dans addFlower je veux ajouter le nom de la fleur tapé par l'utilisateur et ajouté dans la liste --- j'utilise ah: formulaire

mais il semble que la méthode définie pour la propriété ne sont pas appelés par jsf quand je clique sur le bouton, la propriété de fleurs ont nulle comme valeur, comme elle a été déclarée

merci pour vos sugestions, Alex

Répondre

0

vous devez déclarer un actionListener, comme ceci:

<h:commandButton actionListener="#{myBean.addFlower}" . . . 

et dans votre haricot, vous devez définir addFlower

public void addFlower(ActionEvent ev) 

qui exécute le travail.

+0

je l'ai défini, et la méthode est appelée, j'ai vérifié –

+0

le setMethod pour les propriétés ne sont pas appelés –

1

Bean:

... myBean() { 
    Flower flower; 

    (...) 

    public void addFlower() { } 

    //getters and setters for Flower prop. 
} 

Xhtml

<h:inputText value="#{myBean.flower.name}"/> 
<h:commandButton action="#{myBean.addFlower}" value="Click me!"/> 

C'est tout ce que vous avez à faire. Une instance pour fleur avec get et set et un h:inputText avec le nom de la fleur dans la propriété "value". Lorsque vous cliquez sur le bouton, la valeur tapée sera placée dans la propriété référencée dans la valeur, donc si vous imprimez le flower.name (dans la méthode addFlower) vous pourrez voir l'entrée de l'utilisateur. Fonctionne également, mais vous devez vérifier quelle importation vous utilisez pour ActionEvent. IDE importe toujours java.awt.event.ActionEvent mais le droit est javax.faces.event.ActionEvent ... java.awt ne fonctionne pas et je suppose que c'est pourquoi votre méthode n'est pas appelée.

0

Une étiquette entoure-t-elle à la fois l'entrée et le bouton?

<h:form> 
    <h:inputText value="#{myBean.flower.name}"/> 
    <h:commandButton action="#{myBean.addFlower}" value="Click me!"/> 
</h:form> 

Sinon, l'entrée ne sera pas envoyée.

Questions connexes