Variavel private com o valor de um inputTex

11 respostas
java
S

Bom dia pessoal, estou fazendo um trabalho em java jsf + hibernate + primefaces… trabalho final TCC

Galera tenho uma variável private no ManagedBean (telefone) e ela deve ser preenchida com o valor de um inputText, mas não consigo, a variável sempre fica NULL.

Desde já agradeço a quem puder ajudar

11 Respostas

peczenyj

vc tem um metodo publico setTelefone ?

salvo engano, o jsf converte o atributo do managed bean para um setter se possivel.

se não pode eu não lembro se gera warning ou exception, talvez precise habilitar algo na configuração para detectar isso (ou vc talvez não tenha olhado direito )

Mike

O null pode significar várias coisas, posta o código do Bean e do XHTML

S

Obrigado por responder, meio desesperado com o TCC
Observar o item telefone1, pois os outros irá seguir o mesmo modelo, desculpe pelo código ainda está muito bagunçado

XHTML

Trabalho TCC

Trabalho TCC

<h:panelGrid id="panelButoes" columns="5">
            <p:commandButton value="Editar" id="edit" actionListener="00"  icon="ui-icon-pencil" />
            <p:commandButton value="Gravar" id="grav" update="formPrincipal"  actionListener="00"  icon="ui-icon-disk" />
            <p:commandButton value="Limpar" id="limp" actionListener="00"  icon="ui-icon-minus" />
            <p:commandButton value="BackUp" id="back" actionListener="00"  icon="ui-icon-copy" />
            <p:commandButton value="Restaurar BackUp" actionListener="00"  icon="ui-icon-arrowrefresh-1-n" />
            </h:panelGrid>
            
        <h:panelGrid id="panelConfig" columns="4" cellpadding="10" >
        <h:outputText value="Digite o nome do executável do software do modem 4G:" />
        <p:inputText id="modem"></p:inputText>
        <h:outputText value="" />
        <h:outputText value="" />
        <h:outputText value="Digite o nome do executável do Banco de Dados:" />
        <p:inputText id="banco"></p:inputText>
        <h:outputText value="" />
        <h:outputText value="" />
        <h:outputText value="Digite a porcentagem máxima para monitoramento da memória:" />
        <p:inputText id="memoria" value="#{memoriaBean.numero}"></p:inputText>
        <h:outputText value="" />
        <h:outputText value="" />
        <h:outputText value="Digite a porcentagem máxima para monitoramento do HD:" />
        <p:inputText id="hd" value="#{hdBean.numero}"></p:inputText>
        <h:outputText value="" />
        <h:outputText value="" />
        <h:outputText value="Digite o intervalo para o monitoramento (em minutos):" style="font-weight:bold" />
        <p:inputText id="monitor"></p:inputText>
        <h:outputText value="" />
        <h:outputText value="" />
        
        
        </h:panelGrid >
        
        <p:panel id="basic" header="Usuários" style="margin-bottom:20px">
        <p:outputLabel  value="Digite os nomes, cargos, telefones e senhas dos usuários do sistema"/>
    
        <h:panelGrid id="panelUsuarios" columns="4">
        
            <p:outputLabel value="Nomes:"></p:outputLabel>
            <p:outputLabel value="Cargos:"></p:outputLabel>
            <p:outputLabel value="Telefones:"></p:outputLabel>
            <p:outputLabel value="Senhas:"></p:outputLabel>
                
            <p:inputText id="nome1" value="#{usuariosBean.nome1}"/>
                <p:ajax event="keyup" listener="#{usuariosBean.handleKeyEventNome1}"/>
            <p:inputText id="cargo1" value="#{usuariosBean.cargo1}"/>
                <p:ajax event="keyup" listener="#{usuariosBean.handleKeyEventCargo1()}"/>

<p:inputText id=“telefone1” value="#{smsBean.telefone1}"/>

<p:password id="senha1" value="#{usuariosBean.senha1}" feedback="true"
                promptLabel="Por favor digite a senha" weakLabel="Fraca"
                goodLabel="Regular" strongLabel="Boa"/>
                
            <p:inputText id="nome2" value="#{usuariosBean.nome2}"/>
                <p:ajax event="keyup" listener="#{usuariosBean.handleKeyEventNome2()}"/>
            <p:inputText id="cargo2" value="#{usuariosBean.cargo2}"/>
                <p:ajax event="keyup" listener="#{usuariosBean.handleKeyEventCargo2()}"/>
            <p:inputText id="telefone2" value="#{usuariosBean.telefone2}"/>
                <p:ajax event="keyup" listener="#{usuariosBean.handleKeyEventTelefone2()}"/>
                
                <p:password id="senha2" value="#{usuariosBean.senha2}" feedback="true"
                promptLabel="Por favor digite a senha" weakLabel="Fraca"
                goodLabel="Regular" strongLabel="Boa"/>
                
            <p:inputText id="nome3" value="#{usuariosBean.nome3}"/>
                <p:ajax event="keyup" listener="#{usuariosBean.handleKeyEventNome3()}"/>
            <p:inputText id="cargo3" value="#{usuariosBean.cargo3}"/>
                <p:ajax event="keyup" listener="#{usuariosBean.handleKeyEventCargo3()}"/>
            <p:inputText id="telefone3" value="#{usuariosBean.telefone3}"/>
                <p:ajax event="keyup" listener="#{usuariosBean.handleKeyEventTelefone3()}"/>
                
                <p:password id="senha3" value="#{usuariosBean.senha3}" feedback="true"
                promptLabel="Por favor digite a senha" weakLabel="Fraca"
                goodLabel="Regular" strongLabel="Boa"/>
            
        </h:panelGrid>
            </p:panel>
   
    </p:tab>
    </p:accordionPanel>
        <br/>
        <br/>
    <p:fieldset legend="Status do Sistema" style="margin-bottom:20px">
            
            <p:panel>
        <h:panelGrid id="panelStatus1" columns="4" cellpadding="5">
        <h:outputLabel value="Conexão com a internet:"/>
        <p:outputLabel id="conexao" value="&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;#{conexaoBean.resultado}"/>
        <p:outputLabel id="conexaoSms" value="&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;#{conexaoBean.sms}"/>
        <p:poll interval="5" listener="#{conexaoBean.conexaoAtual()}" update="conexao, conexaoSms" ></p:poll>
        </h:panelGrid>
        
        
        <h:panelGrid id="panelStatus2" columns="3" cellpadding="5">
        <p:outputLabel value="Conexão com o Banco de Dados:"/>
        <p:outputLabel value=" &nbsp; &nbsp;  Banco de Dados Online"/>
        <p:outputLabel value="&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Monitorando..."/>
        </h:panelGrid>
            </p:panel>
        
        <br/>
            <p:panel>
        <h:panelGrid id="panelStatus3" style="text-align:center" columns="4" >
            
            <p:outputLabel id="memoria" style="font-weight:bold" value="#{memoriaBean.resultado}"/>
            
            <p:outputLabel value="&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "/>
            <p:outputLabel id="hd" style="font-weight:bold" value="#{hdBean.porcentagemHd}"/>
           
            <p:poll interval="5" update="graficoMemoria" />
            <p:chart id="graficoMemoria" type="pie" model="#{graficoMemoria.livePieModel}" style="width:300px;height:220px"/>
       
            <p:poll interval="5" update="graficoHd" />
            <p:chart id="graficoHd" type="pie" model="#{graficoHd.livePieModel}" style="width:300px;height:220px"/>
        
            <p:outputLabel value=""/>
            <p:outputLabel id="memoriaSms" value="#{memoriaBean.sms}"/>
            <p:outputLabel value=""/>
            <p:outputLabel id="hdSms" value="#{hdBean.sms}"/>
        
        <p:poll interval="5" listener="#{memoriaBean.memoriaAtual()}" update="memoria, memoriaSms" ></p:poll>
        <p:poll interval="5" listener="#{hdBean.hdAtual()}" update="hd, hdSms" ></p:poll>
            
          
      
        </h:panelGrid>
            </p:panel>
         <br/>
        
        <p:panel id="panelStatusUsuario">
            <p:outputLabel value="&nbsp; Usuários..."></p:outputLabel>
            <h:panelGrid columns="3" cellpadding="5">
            <p:outputLabel value="Nome(s)"></p:outputLabel>
            <p:outputLabel value="Cargo(s)"></p:outputLabel>
            <p:outputLabel value="Telefone(s)"></p:outputLabel>
            
            <h:outputText  id="nomeOut1" value="#{usuariosBean.nome1}"/>
            <h:outputLabel id="cargoOut1" value="#{usuariosBean.cargo1}"/>
            <h:outputLabel id="telefoneOut1" value="#{usuariosBean.telefone1}"/>
            
            <h:outputText  id="nomeOut2" value="#{usuariosBean.nome2}"/>
            <h:outputLabel id="cargoOut2" value="#{usuariosBean.cargo2}"/>
            <h:outputLabel id="telefoneOut2" value="#{usuariosBean.telefone2}"/>
            
            <h:outputText  id="nomeOut3" value="#{usuariosBean.nome3}"/>
            <h:outputLabel id="cargoOut3" value="#{usuariosBean.cargo3}"/>
            <h:outputLabel id="telefoneOut3" value="#{usuariosBean.telefone3}"/>               
            
            
            </h:panelGrid>
        </p:panel>
        
   </p:fieldset>
        
    </h:form>
    
</h:body>

ManagedBean

package br.com.monitoramento;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.List;
import <a href="http://br.com.facilitamovel.bean.MO">br.com.facilitamovel.bean.MO</a>;

import br.com.facilitamovel.bean.Retorno;

import br.com.facilitamovel.bean.SmsMultiplo;

import br.com.facilitamovel.bean.SmsMultiploMessages;

import br.com.facilitamovel.bean.SmsSimples;

import br.com.facilitamovel.service.CheckCredit;

import br.com.facilitamovel.service.ReceiveMessage;

import br.com.facilitamovel.service.SendMessage;

import javax.faces.bean.ManagedBean;

import javax.faces.bean.SessionScoped;
@ManagedBean

@SessionScoped

public class SmsBean {

private String usuario;

private String senha;

private String telefone1;

private String telefone2;

private String telefone3;

private String mensagem;
public String getUsuario() {
    return usuario;
}

public void setUsuario(String usuario) {
    this.usuario = usuario;
}

public String getSenha() {
    return senha;
}

public void setSenha(String senha) {
    this.senha = senha;
}

public String getTelefone1() {
    return telefone1;
}

public void setTelefone1(String telefone1) {
    this.telefone1 = telefone1;
}

public String getTelefone2() {
    return telefone2;
}

public void setTelefone2(String telefone2) {
    this.telefone2 = telefone2;
}

public String getTelefone3() {
    return telefone3;
}

public void setTelefone3(String telefone3) {
    this.telefone3 = telefone3;
}

public String getMensagem() {
    return mensagem;
}

public void setMensagem(String mensagem) {
    this.mensagem = mensagem;
}


public void simple(String x) throws Exception {
        
   	
	//SmsBean.simple(usuario, senha);
	
            SmsSimples sms = new SmsSimples();
	sms.setUser(usuario); //tem que pegar o valor de um inputText
	sms.setPassword(senha); //tem que pegar o valor de um inputText
	sms.setDestinatario(telefone1); //tem que pegar o valor de um inputText
	
	sms.setMessage(x);
	
	Retorno retorno = SendMessage.simpleSend(sms);
	System.out.println("Codigo:" + retorno.getCodigo());
	System.out.println("Descricao:" + retorno.getMensagem());
}

		
}
Mike

Bom… Eu sugiro que você de uma identada no código antes.

O que seria isso?

actionListener="00"

O p:ajax tem que ficar dentro de inputText e não fora, além do que, cade o seu método handleKeyEventTelefone1()?

<p:inputText id="telefone1" value="#{usuariosBean.telefone1}"/>
     <p:ajax event="keyup" listener="#{usuariosBean.handleKeyEventTelefone1()}"/>

Qual a sua intenção ao usar o ajax ali e com evento de keyup?

Você tem 3 atributos telefone…

S

Meu amigo me desculpe pelo código vou deixar mais resumido, tem coisas que está incompleto, mil desculpas
resumindo o que interessa. Observar somente (telefone1)

<h:form id="formPrincipal">
    <p:accordionPanel activeIndex="-1" >
        <p:tab title="Configurações">
            
            <h:panelGrid id="panelButoes" columns="5">
            
            <p:commandButton value="Gravar" id="grav" update="formPrincipal"  actionListener="00"  icon="ui-icon-disk" />
            
            </h:panelGrid>
        
        <h:panelGrid id="panelUsuarios" columns="4">
        
            <p:outputLabel value="Nomes:"></p:outputLabel>
            <p:outputLabel value="Cargos:"></p:outputLabel>
            <p:outputLabel value="Telefones:"></p:outputLabel>
            <p:outputLabel value="Senhas:"></p:outputLabel>
                
                <p:inputText id="nome1" value="#{usuariosBean.nome1}"/>
                 <p:inputText id="cargo1" value="#{usuariosBean.cargo1}"/>
                    <p:inputText id="telefone1" value="#{smsBean.telefone1}"/>
            
                              
            
   
    </p:tab>
    </p:accordionPanel>
      
        
   </p:fieldset>
        
    </h:form>
    
</h:body>
Mike

Sem o código estar organizado fica difícil…

Coloca isso no seu p:inputText

<p:inputText id="telefone1" value="#{smsBean.telefone1}">
    <p:ajax event="blur" process="@this" />
</p:inputText>
S

Muito, mais muito obrigado pela paciência, mas infelizmente deu esse erro

<p:ajax> Event:blur is not supported.

Se eu consigo enviar o conteúdo do inputText para a variável, Bingooo tenho boa parte do meu trabalho pronto

Mike

Qual a versão do seu PrimeFaces e como você fez?

S

É um jar que baixei no https://jar-download.com/?search_box=PrimeFaces-6.0. (a versão é a 6.2)
Adicionei diretamente na biblioteca, não estou utilizando o Maven
É um JavaWeb, aplicação para web.

Mike

Como você fez no código? Pq o evento blur é suportado sim
De qualquer maneira, não era para ser necessário o seu uso.

Eu vi que você esta usando dois beans

O telefone2 e telefone3 esta apontando para o usuariosBean e o telefone1 esta apontando para o smsBean, da uma conferida se é isso mesmo que você quer

Olhe

<p:inputText id=telefone1 value="#{smsBean.telefone1}"/><!-- Aqui -->
<h:outputLabel id="telefoneOut1" value="#{usuariosBean.telefone1}"/>
...
<p:inputText id="telefone2" value="#{usuariosBean.telefone2}"/>
<h:outputLabel id="telefoneOut2" value="#{usuariosBean.telefone2}"/>
...
<p:inputText id="telefone3" value="#{usuariosBean.telefone3}"/>
<h:outputLabel id="telefoneOut3" value="#{usuariosBean.telefone3}"/>
S

Novamente desculpe pela falta de organização, todos são para o smsBean, é através do smsBean que ele deveria enviar um sms para o telefone que foi colocado do inputText, quando realizo o teste a variavel private telefone1 no smsBean não pega o conteudo do inputText (telefone1), fica null. Estou nisso a 2 semanas. Obrigado meu amigo novamente

<p:inputText id=“telefone1” value="#{smsBean.telefone1}"/>
<h:outputLabel id=“telefoneOut1” value="#{smsBean.telefone1}"/>

<p:inputText id=“telefone2” value="#{smsBean.telefone2}"/>
<h:outputLabel id=“telefoneOut2” value="#{smsBean.telefone2}"/>

<p:inputText id=“telefone3” value="#{smsBean.telefone3}"/>
<h:outputLabel id=“telefoneOut3” value="#{smsBean.telefone3}"/>

Criado 11 de setembro de 2018
Ultima resposta 11 de set. de 2018
Respostas 11
Participantes 3