Salve pessoal!
Seguinte, to desenvolvendo um aplicativo com JSF e preciso que, em um form, quando eu clico num radioButton, ele faça sumir uma div e aparecer outra, algo como o show/hide do jQuery. Já tô apanhando pra isso tem uma semana e não saio do lugar. o espaço dos radio buttons tá assim:
<a4j:region>
<h:selectOneRadio required="true" value="#{ValidaPessoa.intMostra}">
<f:selectItem itemValue="1" itemLabel="Pessoa física" />
<f:selectItem itemValue="2" itemLabel="Pessoa jurídica" />
<a4j:support event="onclick" immediate="false"
reRender="formJuridica" action="#{ValidaPessoa.exibirDIV}"/>//primeira linha do erro (23)
</h:selectOneRadio>
</a4j:region>
As div’s são assim:
<s:div id="formJuridica" rendered="#{ValidaPessoa.exibeDiv1}">
<table width="800" border="1">
<tr>
<td><h:outputText value="#{msg.cEmpresa}" /></td>
<td><h:inputText value="#{campos.empresa}" /></td>
<td><h:outputText value="#{msg.cResp}" /></td>
<td><h:inputText value="#{campos.resp}" /></td>
</tr>
</table>
<table width="800" border="1">
<tr>//segunda linha do erro (41)
<td><h:outputText value="#{msg.cCnpj}" /></td>
<td><h:inputText value="#{campos.cnpj}" /></td>
<td><h:outputText value="#{msg.cEmail}" /></td>
<td><h:inputText value="#{campos.email}" /></td>
</tr>
</table>
</s:div>
<s:div id="formFisica" rendered="#{ValidaPessoa.exibeDiv2}">
<table width="800" border="1">
<tr>
<td><h:outputText value="#{msg.cNome}" /></td>
<td><h:inputText value="#{campos.nome}" /></td>
</tr>
</table>
<table width="800" border="1">
<tr>
<td><h:outputText value="#{msg.cCpf}" /></td>
<td><h:inputText value="#{campos.cpf}" /></td>
<td><h:outputText value="#{msg.cEmail}" /></td>
<td><h:inputText value="#{campos.email}" /></td>
</tr>
</table>
</s:div>
Esse é o meu servlet:
public class ValidaPessoa{
private int intMostra;
private boolean exibeDiv1 = false;
private boolean exibeDiv2 = true;
//setters e getters
public int getIntMostra() {
return intMostra;
}
public void setIntMostra(int intMostra) {
this.intMostra = intMostra;
}
public boolean isExibeDiv1() {
return exibeDiv1;
}
public void setExibeDiv(boolean exibeDiv1) {
this.exibeDiv1 = exibeDiv1;
}
public boolean isExibeDiv2() {
return exibeDiv2;
}
public void setExibeDiv2(boolean exibeDiv2) {
this.exibeDiv2 = exibeDiv2;
}
public void exibirDIV(){
if(intMostra == 1){
exibeDiv1 = false;
exibeDiv2 = true;
}else if(intMostra == 2){
exibeDiv1 = true;
exibeDiv2 = false;
}
}
}
E o erro q aparece é o seguinte:
org.apache.jasper.JasperException: /include/formCliente.jsp(23,41) #{..} is not allowed in template text
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:102)
org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:711)
org.apache.jasper.compiler.Node$ELExpression.accept(Node.java:935)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2336)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2386)
org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:838)
org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1507)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2336)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2386)
org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:838)
org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1507)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2336)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2386)
org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:838)
org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1507)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2336)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2386)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2392)
org.apache.jasper.compiler.Node$Root.accept(Node.java:489)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2336)
org.apache.jasper.compiler.Validator.validate(Validator.java:1737)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:178)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:306)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:408)
com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:442)
com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:115)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
Tô começando com o JSF agora, então se alguem puder me dar uma força, agradeço demais!!!
Vlw galera!!!