# JSF: selectOneMenu: bei onchange actionListener auslösen



## Steve™ (3. Dez 2007)

Ich möchte bei einem onchange Event einen actionListener der BackinbBean auslösen. Ist es möglich, bei einem onchange Event eine Action in der Form #{BackingBean.doSomething"} auszulösen ?



```
<t:selectOneMenu onchange="??">
         <f:selectItems value="#{BackingBean.availableValues}"/>
 </t:selectOneMenu>
```


----------



## maki (3. Dez 2007)

onchange sollte einen submit() auslösen, dann wird der actionlistener aufgerufen.


----------



## Steve™ (3. Dez 2007)

hm das klappt aber nicht :


```
<form>
            <t:selectOneMenu onchange="this.form.submit()" >
                <f:selectItems value="#{BackingBean.values}"/>                                   
            </t:selectOneMenu>
           </form>
```


```
public class BackingBean implements javax.faces.event.ActionListener  {

  public void processAction(ActionEvent arg0) throws AbortProcessingException {
   System.out.println("huhu");
    
  }
}
```

Es wird nichts ausgegeben bei einem onchange, aber die daten scheinen zumindest gepostet zu werden


----------



## maki (3. Dez 2007)

Tja, du brauchst schon einen actionListener 

Übrigens, ein gutes Buch zu JSF ist unerlässlich, ich steh auf Core JavaServer Faces 2nd Edition, da wird dieses und dein letztes Thema (und vieles anderes mehr) behandelt 

Einfach mal so JSF per "learning by doing" zu erlernen ist nicht möglich.


----------



## Steve™ (3. Dez 2007)

ach ich trottel. einen valuechangelistener brauch ich nat. 

so klappts. danke aber ich kann mir nicht gleich ein buch kaufen, wenn ich mal eine schnelle lösung such 


```
<form>
            <t:selectOneMenu valueChangeListener="#{BackingBean.processValueChange}" onchange="this.form.submit()"   
             >
              <f:selectItems value="#{BackingBean.values}"/>
                                                 
            </t:selectOneMenu>
           </form>
```


----------



## maki (3. Dez 2007)

Hast recht, hab auch den ActionListener mit dem ValueChangeListener verwendet.



> so klappts. danke aber ich kann mir nicht gleich ein buch kaufen, wenn ich mal eine schnelle lösung such icon_wink.gif


Du kennst ja die Definition von Abkürzung: Der längere Weg.

Aber wenn's reicht, dann reicht's eben.


----------

