Introduction
This article explains how to implement the ActionListener class in the JSF core tag library.
also read:
An ActionListener is an event handler interface for a class that can respond to user events in your JSF page. The body content of this tag must be empty.
JSP File (index.jsp)
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<html>
<body>
<f:view>
<h:form>
<h:inputText value="#{jsfBean.field}"/>
<h:commandButton action="#{jsfBean.submit}" value="Submit">
<f:actionListener binding="#{jsfBean.actionListenerImpl}" type="javabeat.jsf.ActionListenerImpl"/>
</h:commandButton>
</h:form>
</f:view>
</body>
</html>
JavaBean (JavaBeatJsfBean.java)
package javabeat.jsf;
import javax.faces.event.ActionEvent;
/**
* source : www.javabeat.net
*/
public class JavaBeatJsfBean {
private String field;
private ActionListenerImpl actionListenerImpl;
public ActionListenerImpl getActionListenerImpl() {
return actionListenerImpl;
}
public void setActionListenerImpl(ActionListenerImpl actionListenerImpl) {
this.actionListenerImpl = actionListenerImpl;
}
public String getField() {
return field;
}
public void setField(String field) {
this.field = field;
}
public void action() {
System.out.println("Inside Action Listener");
}
public void action(ActionEvent event) {
System.out.println("Inside Action Listener");
}
public String submit() {
System.out.println(this.field);
return "success";
}
}
ActionListener implementation class (ActionListenerImpl.java)
package javabeat.jsf;
import javax.faces.event.AbortProcessingException;
import javax.faces.event.ActionEvent;
import javax.faces.event.ActionListener;
public class ActionListenerImpl implements ActionListener {
public void processAction(ActionEvent event)
throws AbortProcessingException {
System.out.println("Inside Process Action");
}
}
faces-config.xml
<?xml version='1.0' encoding='UTF-8'?>
<faces-config version="1.2"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
<managed-bean>
<managed-bean-name>jsfBean</managed-bean-name>
<managed-bean-class>javabeat.jsf.JavaBeatJsfBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
</faces-config>