Can't Get a4j support to work
amattas Jul 17, 2008 2:18 PMThis is my code, and it is using a session scope bean. The a4j:panels don't render or derender as the selection box is changed.
<?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:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich"
xmlns:fn="http://java.sun.com/jsp/jstl/functions" xml:lang="en"
lang="en">
<ui:composition template="/templates/template.xhtml">
<head>
<title>My XHTML Page</title>
<meta http-equiv="keywords" content="enter,your,keywords,here" />
<meta http-equiv="description"
content="A short description of this page." />
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<!--<link rel="stylesheet" type="text/css" href="styles.css">-->
</head>
<body>
<ui:define name="title">
Stryker Custom Implants : Create New User
</ui:define>
<ui:define name="breadcrumb">
<h:form>
<h:commandLink action="home">Home</h:commandLink>
<span>Register</span>
</h:form>
</ui:define>
<ui:define name="body">
<h:form id="adduser">
<h:panelGrid columns="3">
<h:outputText value="E-Mail:" />
<h:inputText id="email" value="#{UserInfo.username}"
maxlength="75" validator="#{UserInfo.validateEmail}"
required="true" requiredMessage="Field required."></h:inputText>
<h:message for="email" styleClass="error" />
<h:outputText value="First Name:" />
<h:inputText id="firstname" value="#{UserInfo.firstname}"
maxlength="50" validator="#{WebValidators.validateShort}"
required="true" requiredMessage="Field required.">
</h:inputText>
<h:message for="firstname" styleClass="error" />
<h:outputText value="Last Name:" />
<h:inputText id="lastname" value="#{Register.lastname}"
maxlength="50" validator="#{WebValidators.validateShort}"
required="true" requiredMessage="Field required."></h:inputText>
<h:message for="lastname" styleClass="error" />
<h:outputText value="Title:" />
<h:selectOneMenu id="title" value="#{Register.title}"
validator="#{WebValidators.validateShort}">
<f:selectItem itemLabel="" itemValue="" />
<f:selectItem itemLabel="DDS" itemValue="DDS" />
<f:selectItem itemLabel="DMD" itemValue="DMD" />
<f:selectItem itemLabel="FACS" itemValue="FACS" />
<f:selectItem itemLabel="FRCS(C)" itemValue="FRCS(C)" />
<f:selectItem itemLabel="MD" itemValue="MD" />
<f:selectItem itemLabel="MS" itemValue="MS" />
<f:selectItem itemLabel="PhD" itemValue="PhD" />
</h:selectOneMenu>
<h:message for="title" styleClass="error" />
<h:outputText value="Phone:" />
<h:panelGrid columns="4">
<h:inputText id="phone" value="#{Register.phone}" size="10"
maxlength="10" required="true" requiredMessage="Field required."
validator="#{WebValidators.validatePhone}"></h:inputText>
<h:outputText value="ext." />
<h:inputText id="extension" value="#{Register.extension}"
size="9" maxlength="9"
validator="#{WebValidators.validatePhone}"></h:inputText>
<h:message for="phone" styleClass="error" />
</h:panelGrid>
<h:message for="extension" styleClass="error" />
<h:outputText value="Fax:" />
<h:inputText id="fax" value="#{Register.fax}" size="10"
maxlength="10" validator="#{WebValidators.validatePhone}"></h:inputText>
<h:message for="fax" styleClass="error" />
<h:outputText value="Type:" />
<h:selectOneMenu id="groupname" value="#{Register.groupname}"
validator="#{WebValidators.validateShort}">
<f:selectItem itemLabel="" itemValue="" />
<f:selectItem itemLabel="Sales" itemValue="sales" />
<f:selectItem itemLabel="Customer" itemValue="customer" />
<f:selectItem itemLabel="In House" itemValue="admin" />
<f:selectItem itemLabel="Manufacturing" itemValue="man" />
<a4j:support event="onchange" rerender="sales,customer" />
</h:selectOneMenu>
<h:message for="title" styleClass="error" />
</h:panelGrid>
<a4j:outputPanel id="sales"
rendered="#{fn:containsIgnoreCase(Register.groupname, 'sales')}">
<h:panelGrid columns="1">
<h:outputText value="Supervisor:" />
</h:panelGrid>
</a4j:outputPanel>
<a4j:outputPanel id="customer"
rendered="#{fn:containsIgnoreCase(Register.groupname, 'customer')}">
<h:panelGrid columns="1">
<h:outputText value="Customer:" />
<h:outputText value="Supervisor:" />
</h:panelGrid>
</a4j:outputPanel>
<h:commandButton id="submit" action="#{Register.add}"
value="Register" styleClass="button" />
<a4j:log />
</h:form>
</ui:define>
</body>
</ui:composition>
</html>