我们可以使用render属性来指定要为Ajax更新呈现的组件。 render属性可以指向要更新的特定组件的ID标识符。也可以通过使用表达语言(EL)来识别组件。
render属性接受以下关键字:
Keyword | Function |
---|---|
@all | 它用于更新每个组件。 |
@none | 它不用于任何组件更新。 |
@this | 它用于请求具有execute属性更新的组件。 |
@form | 它用于更新包含所请求组件的表单。 |
@region | 包含请求组件的区域已更新。使用<a4j:region>组件作为包装器元素来指定区域。 |
我们应该通过设置ajaxRendered =” true”使用<a4j:outputPanel>组件。
<rich:message>和<rich:messages>组件基于<a4j:outputPanel>组件, 因此也将始终进行更新。若要覆盖此行为, 请在请求组件上使用limitRender =” true”设置。
// index.xhtml
<?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:h="http://xmlns.jcp.org/jsf/html"
xmlns:a4j="http://richfaces.org/a4j">
<h:head>
<title>Partial View Update</title>
</h:head>
<h:body>
<h:form>
<h:outputText value="Enter Text "></h:outputText>
<h:inputText id="name1" value="#{user.name}">
<a4j:ajax event="keyup" render="name2"></a4j:ajax>
</h:inputText>
</h:form>
<br/>
<br/>
<a4j:outputPanel ajaxRendered="true">
<h:outputText value="#{user.name}"></h:outputText>
</a4j:outputPanel>
</h:body>
</html>
// User.java
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
@ManagedBean
@RequestScoped
public class User {
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
输出
评论前必须登录!
注册