AJAX代表Asynchronous JavaScript And Xml。這是一種使用JavaScript的HTTPXMLObject發(fā)送數(shù)據(jù)的技術到服務器并從服務器異步接收數(shù)據(jù)。
在Ajax中,Javascript代碼與服務器交換數(shù)據(jù),更新網(wǎng)頁的部分而不重新加載整個頁面。
JSF支持使用f:ajax標簽的Ajax調用。
下面顯示了一個簡單的JSF標記。
<f:ajax execute="input-component-name" render="output-component-name" />
屬性 | 描述 |
---|---|
disabled | 如果為true,則Ajax行為將應用于任何父組件或子組件。如果為false,將禁用Ajax行為。 |
event | 將調用Ajax請求的事件,例如“點擊",“改變",“模糊",“按鍵"等。 |
execute | 組件的ID的空格分隔列表應包含在Ajax請求中。 |
immediate | 如果在應用請求值階段廣播生成的“true"行為事件。否則,將在“調用應用程序"階段期間廣播事件。 |
listener | 背景中方法的EL表達式bean在Ajax請求期間調用。 |
onerror | 在Ajax請求期間發(fā)生錯誤時,JavaScript回調函數(shù)的名稱。 |
onevent | 用于處理UI事件的JavaScript回調函數(shù)的名稱。 |
render | 組件的ID的空格分隔列表將在Ajax請求后更新。 |
以下代碼顯示了如何創(chuàng)建 h:outputText
標記Ajax應用程序來顯示用戶輸入。
下面的代碼來自UserBean.java。
package cn.w3cschool.common; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; import java.io.Serializable; @ManagedBean @SessionScoped public class UserBean implements Serializable { private static final long serialVersionUID = 1L; private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSayWelcome(){ if("".equals(name) || name ==null){ return "Null Message"; }else{ return "Ajax message : Welcome " + name; } } }
以下代碼來自demo.xhtml。
h:inputText
創(chuàng)建一個輸入字段框。它使用 h:commandButton
來調用 f:ajax
。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html"> <h:body> <h:form> <h:inputText id="name" value="#{userBean.name}"></h:inputText> <h:commandButton value="Welcome Me"> <f:ajax execute="name" render="output" /> </h:commandButton> <h2><h:outputText id="output" value="#{userBean.sayWelcome}" /></h2> </h:form> </h:body> </html>
將生成的WAR文件從目標文件夾復制到Tomcat部署文件夾并運行Tomcat-Install-folder / bin / startup.bat。
Tomcat完成啟動后,在瀏覽器地址欄中鍵入以下URL。
http://localhost:8080/simple-webapp/demo.xhtml
更多建議: