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>