nanda2
Junho 11, 2011, 8:25pm
#1
Oi pessoal, sou iniciante em java web e estou tendo com problemas para validar a escolha feita no radio.
Tenho:
Um Bean Simulacao com get e setTipoSimulacao, equals e hashcode
Um ManagedBean com a função verificaSimulacao()
get e setSelectItem(Simulacao tpSimulacao)
public String verificaSimulacao(){
if(selectedSimulacao.getTipoSimulacao().equals("0"))
return "gotoNovoAlunos";
else
return "gotoCadAlunos";
}
E um jsp com o componente radio:
<h:selectOneRadio id="rdoSimulacao" value="SimulacaoFaces.selectedItem.tipoSimulacao">
<f:selectItem itemValue="0" itemLabel="Novos alunos"/>
<f:selectItem itemValue="1" itemLabel="Alunos cadastrados no sistema"/>
</h:selectOneRadio>
No faces-config tenho configurado o managed-bean SimulacaoFaces.
Gostaria de saber muito se estou errando na hora de recuperar e validar o retorno do radio, se posso mesmo pegar o valor do item value e comparar dessa maneira ou devo fazer de outro jeito, pois desse jeito só recebo o erro NullPointerException.
Agradeço a ajuda.
Tenta assim:
No bean:
String tipoSimulacao;
Na pagina:
<h:selectOneRadio id="rdoSimulacao" value="#{simulacaoFaces.tipoSimulacao}">
<f:selectItem itemValue="0" itemLabel="Novos alunos"/>
<f:selectItem itemValue="1" itemLabel="Alunos cadastrados no sistema"/>
</h:selectOneRadio>
nanda2
Junho 13, 2011, 12:48pm
#3
Raf4ever tentei assim mas ainda aparece o seguinte erro:
exception
javax.servlet.ServletException: #{SimulacaoFace.verificaSimulacao}: java.lang.NullPointerException
javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
root cause
javax.faces.FacesException: #{SimulacaoFace.verificaSimulacao}: java.lang.NullPointerException
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:107)
javax.faces.component.UICommand.broadcast(UICommand.java:383)
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:447)
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:752)
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
root cause
javax.faces.el.EvaluationException: java.lang.NullPointerException
javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:91)
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
javax.faces.component.UICommand.broadcast(UICommand.java:383)
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:447)
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:752)
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
root cause
java.lang.NullPointerException
secplanejamento.managedbeans.SimulacaoFace.verificaSimulacao(SimulacaoFace.java:89)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.apache.el.parser.AstValue.invoke(AstValue.java:191)
org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68)
javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
javax.faces.component.UICommand.broadcast(UICommand.java:383)
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:447)
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:752)
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
O que pode ser?
Coloca o código completo dessa classe SimulacaoFace
nanda2
Junho 14, 2011, 7:56am
#5
Esse é o código:
// BEAN
package secplanejamento.db;
public class Simulacao {
String tipoSimulacao;
public String getTipoSimulacao() {
return tipoSimulacao;
}
public void setTipoSimulacao(String tipoSimulacao) {
this.tipoSimulacao = tipoSimulacao;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Simulacao other = (Simulacao) obj;
if ((this.tipoSimulacao == null) ? (other.tipoSimulacao != null) : !this.tipoSimulacao.equals(other.tipoSimulacao)) {
return false;
}
return true;
}
@Override
public int hashCode() {
int hash = 7;
hash = 59 * hash + (this.tipoSimulacao != null ? this.tipoSimulacao.hashCode() : 0);
return hash;
}
}
//MANAGED BEAN
import secplanejamento.db.Simulacao;
public class SimulacaoFace {
private Simulacao selectedSimulacao;
public SimulacaoFace() {
System.out.println("The Simulacao face foi criado");
}
public Simulacao getSelectedSimulacao() {
return selectedSimulacao;
}
public void setSelectedSimulacao(Simulacao selectedSimulacao) {
this.selectedSimulacao = selectedSimulacao;
}
public String verificaSimulacao(){
if(selectedSimulacao.getTipoSimulacao().equals("0"))
return "gotoNovoAluno";
else
return "gotoCadAluno";
}
}
//SIMULAÇÃO.JSP
<h:selectOneRadio id="rdoSimulacao" value="SimulacaoFace.selectedSimulacao.tipoSimulacao">
<f:selectItem itemValue="0" itemLabel="Novos alunos"/>
<f:selectItem itemValue="1" itemLabel="Alunos cadastrados no sistema"/>
</h:selectOneRadio>
//FACES-CONFIG
<managed-bean>
<managed-bean-name>SimulacaoFace</managed-bean-name>
<managed-bean-class>secplanejamento.managedbeans.SimulacaoFace</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
...
<navigation-rule>
<from-view-id>/simulacao.jsp</from-view-id>
<navigation-case>
<from-outcome>gotoCadAluno</from-outcome>
<to-view-id>/cadAluno.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>gotoNovoAluno</from-outcome>
<to-view-id>/novoAluno.jsp</to-view-id>
</navigation-case>
</navigation-rule>