Explicit loading of jsf.js
The AJAX mechanism used by JSF is encapsulated in a JavaScript file, named jsf.js
. This file is available in the javax.faces
library. When we are using <f:ajax>
, this file is loaded behind the scene without any explicit requirements.
However, jsf.js
can be loaded explicitly with any of the following methods:
Using the
<h:outputScript>
component as follows:<h:outputScript name="jsf.js" library="javax.faces" target="head"/>
Using the
@ResourceDependency
keyword as follows:@ResourceDependency(name="jsf.js" library="javax.faces" target="head")
Focusing on <h:outputScript>
, you can attach AJAX to a component as shown in the following example code:
<h:form prependId="false"> <h:outputScript name="jsf.js" library ="javax.faces" target="head"/> <h:inputText id="nameInId" value="#{ajaxBean.name}"/> <h:outputText id="nameOutId" value="#{ajaxBean.name}"/> <h:commandButton id="submit" value="Send" ...