Vetor em JSF

16 respostas
ricardocomp

Olá pessoal,
eu estou precisando pegar
8 valores da minha página JSF
e até agora não consegui arrumar
um jeito para fazer isso eu estou
fazendo da seguinte maneira:

<li>
    Absorbância 1:<h:inputText styleClass="input_abs" value="#{CurvaAlcoolSupController.absorbancia.valor}" /><br>
</li>
<li>
    Absorbância 2:<h:inputText styleClass="input_abs" value="#{CurvaAlcoolSupController.absorbancia.valor}" /><br>
</li>
<li>
    Absorbância 3:<h:inputText styleClass="input_abs" value="#{CurvaAlcoolSupController.absorbancia.valor}" /><br>
</li>
//Vai até 8 valores
...

preciso preencher o vetor vetAbsorbancia com os valores da minha pagina JSF

public class CurvaAlcoolSupController {

    private CurvaPadrao curvaPadrao;
    private Absorbancia[] vetAbsorbancia;

    /**
     * Construtor responsavél por criar um nova Curva Padrão do Álcool Superior
     *
     * @return "novo"
     */
    public String novaCurvaAlcSup() {

        NomeAnalise nome = null;
        this.vetAbsorbancia = new Absorbancia[8];
        this.curvaPadrao = new CurvaPadrao(nome.ALCOOL_SUPERIOR);
        
        return "nova_curva_alc_sup";
        
    }
...
}

Será que alguém poderia me dar uma ajuda? :smiley:

[]'s.

16 Respostas

ricardocomp

Oi pessoal ninguém?
Será que alguém pode me dar uma ajuda Fazendo o Favor?

[]'s.

ricardocomp

Olá pessoal,
alguém sabe como eu devo fazer
para pegar os valores de inputText
e colocá-los em um vetor no JSF? :smiley:

[]'s.

alves.Felipe

tenta fazer algo assim, 1º vc cria a sua lista, e depois usa o ui:repeat:

<ui:repeat value="#{clientePocketController.clientes}" var="c">
	<h:inputText value="#{c.nome}" /><br/>
</ui:repeat>
ricardocomp

Jóia alves.Felipe?
Eu estou fazendo
da seguinte maneira:

<li>
    Absorbância 1:<h:inputText styleClass="input_abs" value="#{CurvaAlcoolSupController.vetAbsAlcSup.absorbancia1}" /><br>
</li>
<li>
    Absorbância 2:<h:inputText styleClass="input_abs" value="#{CurvaAlcoolSupController.vetAbsAlcSup.absorbancia2}" /><br>
</li>
<li>
    Absorbância 3:<h:inputText styleClass="input_abs" value="#{CurvaAlcoolSupController.vetAbsAlcSup.absorbancia3}" /><br>
</li>
... até os 8

Mas não estou conseguindo fazer os calculos que eu preciso
Felipe, será que tem como você ou alguém me dar uma
ajuda?

[]'s.

alves.Felipe

o que vc precisa fazer? q calculos?

ricardocomp

Esse é o botão que eu utilizo para
fazer os cálculos:

<h:commandButton action="#{CurvaAlcoolSupController.calculaCurvaPadrao}" value="Calcular" /><br/>

Este é o método que uso para calcular

public class CurvaAlcoolSupController {
   public void calculaCurvaPadrao(){
        try {
            this.curvaPadrao.calculaCoefCorrelacao(this.vetAbsAlcSup.getVetAbsorbancia());
            this.curvaPadrao.calculaKm(this.vetAbsAlcSup.getVetAbsorbancia());
            this.curvaPadrao.calculaCurvaPadrao();
        }
        ...
    }
}

Ele mostra referências nos inputText
quando eu abro a minha página jsf,
será que você Felipe ou alguém poderia me dar
uma ajuda?

[]'s.

alves.Felipe

ta mas seu problema é que vc não consegue ainda pegar os valores do form?
o que é isso? CurvaAlcoolSupController.vetAbsAlcSup, é uma lista mesmo??
ja tentou fazer igual eu falei?
bean:

List list;

public List getValores()
{
   if (list==null)
   {
     //inicializa a lista e adiciona os objeto que vc quer
    }
   return list;
}

vc esta usando Facelets?se sim…

<ui:repeat value="#{seuController.valores}" var="valor">   
    <h:inputText value="#{valor.algumCampo}" /><br/>   
</ui:repeat>
ricardocomp

Jóia Felipe?
Eu não estou FACELET não
só as tag’s padrão do JSF
f e h.

O vetor vetAbsAlcSup é da classe CurvaAlcoolSupController

public class CurvaAlcoolSupController {

    private CurvaPadrao curvaPadrao;
    private VetorAbsorbanciaAlcSup vetAbsAlcSup;
    ...
}
ricardocomp

Isto que eu usei para preencher o vetor:

public class VetorAbsorbanciaAlcSup {

    private Absorbancia[] vetAbsorbancia = new Absorbancia[8];
    private Absorbancia absorbancia1 = new Absorbancia();
    private Absorbancia absorbancia2 = new Absorbancia();
    private Absorbancia absorbancia3 = new Absorbancia();
    private Absorbancia absorbancia4 = new Absorbancia();
    private Absorbancia absorbancia5 = new Absorbancia();
    private Absorbancia absorbancia6 = new Absorbancia();
    private Absorbancia absorbancia7 = new Absorbancia();
    private Absorbancia absorbancia8 = new Absorbancia();


    public VetorAbsorbanciaAlcSup() throws ValorNegativoException, AnaliseException{
        this.absorbancia1.setValor(0);
        this.absorbancia2.setValor(0);
        this.absorbancia3.setValor(0);
        this.absorbancia4.setValor(0);
        this.absorbancia5.setValor(0);
        this.absorbancia6.setValor(0);
        this.absorbancia7.setValor(0);
        this.absorbancia8.setValor(0);
    }    

    public Absorbancia[] getVetAbsorbancia() {
        return vetAbsorbancia;
    }

    public void setVetAbsorbancia(Absorbancia[] vetAbsorbancia) {
        this.vetAbsorbancia = vetAbsorbancia;
    }

    public Absorbancia getAbsorbancia1() {
        return absorbancia1;
    }

    public void setAbsorbancia1(Absorbancia absorbancia1) {
        this.absorbancia1 = absorbancia1;
        this.vetAbsorbancia[1] = this.absorbancia1;
    }

    public Absorbancia getAbsorbancia2() {
        return absorbancia2;
    }

    public void setAbsorbancia2(Absorbancia absorbancia2) {
        this.absorbancia2 = absorbancia2;
        this.vetAbsorbancia[2] = this.absorbancia2;
    }
... até os 8

}

E agora eu consegui resolver
o problema da referencia
fazendo o seguinte:

<li>
Absorbância 1:<h:inputText styleClass="input_abs" value="#{CurvaAlcoolSupController.vetAbsAlcSup.absorbancia1.valor}" /><br>
</li>
ricardocomp

Mas agora Felipe
esta aparecendo a seguinte
mensagem no terminal:

WARNING: executePhase(INVOKE_APPLICATION 5,com.sun.faces.context.FacesContextImpl@17a60fa) threw exception
javax.faces.FacesException: #{CurvaAlcoolSupController.calculaCurvaPadrao}: java.lang.NullPointerException
        at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:105)
        at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
        at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:619)
Caused by: javax.faces.FacesException: #{CurvaAlcoolSupController.calculaCurvaPadrao}: java.lang.NullPointerException
        at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:107)
        at javax.faces.component.UICommand.broadcast(UICommand.java:383)
        at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:447)
        at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:752)
        at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
        ... 18 more
Caused by: javax.faces.el.EvaluationException: java.lang.NullPointerException
        at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:91)
        at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
        ... 22 more
Caused by: java.lang.NullPointerException
        at model.analises.Regressao.calculaRegressao(Regressao.java:31)
        at model.analises.CurvaPadrao.calculaCoefCorrelacao(CurvaPadrao.java:99)
        at controller.CurvaAlcoolSupController.calculaCurvaPadrao(CurvaAlcoolSupController.java:68)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.el.parser.AstValue.invoke(AstValue.java:172)
        at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
        at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68)
        at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
        ... 23 more

Será que teria como
você Felipe ou alguém me dar uma ajuda?

[]'s.

K

Faz um Debug nesse método, vc esqueceu de inicializar algum objeto…

Abraços!

ricardocomp

Jóia kired?
Acho que a única maneira
de Debugar essa classe
é criando outra classe
para Testar pois eu acho
que não existe uma
maneira de eu Debugar
usando diretamente a minha
página JSF você ou alguém
sabe se existe alguma outra
maneira?

[]'s.

K

Opa,

Então, vc pode debuggar no seu próprio Bean, seta um Breakpoint em todas as linhas do método, e vai vendo linha por linha como estão os objetos, quais estão inicializados corretamente, etc…

ricardocomp

Olá pessoal,
eu estou debugando
aqui o meu código para
ver se eu consigo encontrar
o meu erro, mas porque será
que toda hora que eu clico
no botão limpar e construir
do Netbeans aparece a
mensagem:

init:
undeploy-clean:
Desimplantando...
OK - Undeployed application at context path /LAFQA
deps-clean:
do-clean:
Deleting directory C:\Documents and Settings\Ricardo Ramos\Meus documentos\NetBeansProjects\LAFQA\build
C:\Documents and Settings\Ricardo Ramos\Meus documentos\NetBeansProjects\LAFQA\nbproject\build-impl.xml:832: Unable to delete file C:\Documents and Settings\Ricardo Ramos\Meus documentos\NetBeansProjects\LAFQA\build\web\WEB-INF\lib\mysql-connector-java-5.1.6-bin.jar
FALHA NA CONSTRUÇÃO (tempo total: 2 segundos)

Será que alguém poderia
me dar uma ajuda me
dizendo o que é isso?

[]'s.

K

Brother, eu uso Eclipse, teve uma época que usei NetBeans, e até lembro disso. Se não me engano, vc não pode limpar e reconstruir o código com o App Server ligado… Tenta desligar o server e limpar de novo.

Abraços!

ricardocomp

Jóia kired?
Era isso mesmo o tomcat
estava ligado e por isso eu
não conseguia limpar e construir
valeu. Muito obrigado pela sua ajuda.

Eu estou debugando aqui
e quero agradecer a todos
que me ajudaram mas
vou terminar de debugar
e qq coisa eu vou voltar
aqui nesse post.

[]'s.

Criado 21 de janeiro de 2010
Ultima resposta 22 de jan. de 2010
Respostas 16
Participantes 3