Home Jsf Jsftraining Value Change Event Listener



Value Change Event Listener
Posted on: December 30, 2008 at 12:00 AM
Value Change Listener can be implemented in 2 ways. If you use the first one then it will limit you to use only one listener for the component but second way permits you to include more than one listeners.

Value Change Event Listener

        

Value Change Listener  can be implemented in 2 ways. If you use the first one then it will limit you to use only one listener for the component but second way permits you to include more than one listeners.

1. Using "valueChangeListener" attribute of the component tag

<h:selectOneMenu id="songList" value="#{ValueChangeBean.selectedSong}" valueChangeListener="#{ValueChangeBean.processMyValueChange}" immediate="true" onchange="this.form.submit()">
  <f:selectItems value="#{ValueChangeBean.songList}"/>
</h:selectOneMenu>

Sample Code for processMyValueChange method in "ActionBean":

public void processMyValueChange(ValueChangeEvent vce){
   songvalue = (String) vce.getNewValue(); 
   setSongDetail((String)detail.get(songvalue));

   /*Render the response*/
   FacesContext.getCurrentInstance().renderResponse();
}

 

2. Using <f:valueChangeListener /> tag

The ValueChangeListener interface must be implemented to capture an ValueChangeEvent. This interface provides processValueChange() method which is called when the ValueChangeEvent action observed by this listener occurs. So processValueChange() method should be implemented for the value change event listeners.

processValueChange method signature:

public void processValueChange(ValueChangeEvent event) throws AbortProcessingException

For example:(In JSP)

<h:inputText id="name" immediate="true" onchange="this.form.submit()" required="true"> 
  <f:valueChangeListener type="roseindia.MyValueChangeBean" />
</h:inputText>

The code for MyValueChangeBean.java:

package roseindia;

import java.util.*;
import javax.faces.event.*;
import javax.faces.context.FacesContext;

public class MyValueChangeBean extends Object implements ValueChangeListener {
    public void processValueChange(ValueChangeEvent event) throws AbortProcessingException {  
  if (null != event.getNewValue()) {
   FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("name", event.getNewValue());
  }
   }
}

Download code for all examples

Related Tags for Value Change Event Listener:
ccomlistincludecomponentlimitvaluermichangelisteneriffortolistenerseilitcanlihangmitusepeimfirstinrmmntcaclemlistenmesincisirhaimplementedllmplvassthcondstalupleplmindonlyonomonl


More Tutorials from this section

Ask Questions?    Discuss: Value Change Event Listener  

Post your Comment


Your Name (*) :
Your Email :
Subject (*):
Your Comment (*):
  Reload Image
 
 

Ask Questions?

If you are facing any programming issue, such as compilation errors or not able to find the code you are looking for.

Ask your questions, our development team will try to give answers to your questions.