<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="https://ajax4jsf.dev.java.net/ajax" prefix="a4j"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%><HTML>
<HEAD>
<style>
<!--
.px10{
padding-bottom: 10px;
}
-->
</style>
<title>a4j-support with Selects</title>
</HEAD>
<body>
<f:view>
<h:outputText value="block设置块显示位置"/>
<a4j:region selfRendered="true"> 
  <h:form>
     <a4j:status startStyle="font-color:red"/>
<h:outputText value="tpl" style="display:block"/>
<h:panelGroup style="display:block;" styleClass="px10">
  <h:selectOneMenu value="#{Bean.tpl}">
    <f:selectItems value="#{Bean.maptpl}" />
      <a4j:support event="onchange" action="#{Bean.blockset}"
 reRender="Option1"/>
    </h:selectOneMenu>
</h:panelGroup> <h:outputText value="layout" />
<h:panelGroup style="display:block" id="Option1" styleClass="px10">
  <h:selectOneMenu value="#{Bean.layout}">
      <f:selectItems value="#{Bean.maplayout}" />
<a4j:support event="onchange" action="#{Bean.frameset}"
 reRender="Option2" />
  </h:selectOneMenu>
</h:panelGroup>

<h:outputText value="frame" />
<h:panelGroup style="display:block" id="Option2" styleClass="px10">
   <h:selectOneMenu value="#{Bean.frame}">
     <f:selectItems value="#{Bean.mapframe}"/>
   </h:selectOneMenu>
</h:panelGroup>
<a4j:commandButton value="设置" action="#{Bean.submitset}"></a4j:commandButton>
</h:form>
</a4j:region>
</f:view>
</body>
</HTML>应该能看懂吧
<a4j:support event="onchange" action="#{Bean.blockset}"
 reRender="Option1"/>
这句表示当下拉菜单改变时 调用Bean里的blockset方法(这个方法作用就是改变另一个下拉列表)
reRender="Option1"表示刷新id="Option1"的h:panelGroup 因为h:selectOneMenu在h:panelGroup里 所以就是刷新了这个下拉菜单