NullPointerException with a DataTable

UI Components for JSF
Post Reply
lipeedutra
Posts: 1
Joined: 25 Jul 2016, 19:58

25 Jul 2016, 20:19

Hey guys,

The foollowin erros are occurring...

Null pointer with a data table with more than four columns, using filter by.

I need to list every data in this data table but when i implement a option to list all the data in the rowsPerPageTemplate , the list show all data but the functions stopping to work.

listarti.xhtml

Code: Select all

<?xml [img][/img]version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<ui:composition template="../../template/template.xhtml"
	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:p="http://primefaces.org/ui">

	<ui:define name="conteudo">
		<h:form prependId="false" id="form">

			<p:growl id="messages" showDetail="true" />
			<p:messages id="messages2" showDetail="true" />

			<p:ajaxStatus>
				<f:facet name="start">
					<h:graphicImage value="ajax-loading-bar.gif" />
				</f:facet>
			</p:ajaxStatus>

			<p:dataTable id="dataTable" var="ti" value="#{agenciasMB.lista}"
				rowStyleClass="#{empty ti.ip ? 'esconder' : null}" editable="true"
				paginator="true" rows="45" style="width:''%" lazy="true"
				paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
				rowsPerPageTemplate="10,15,45,300">

				<f:facet name="header">
		           Departamento de Tecnologia da Informação (Procergs: 0800-6469191)
		        </f:facet>

				<p:commandButton value="Info" id="info"
					actionListener="#{agenciasMB.info}" update="messages">
					<f:param name="enderecoip" value="meuip" />
				</p:commandButton>

				<!-- 				<p:ajax event="rowEdit" listener="#{agenciasMB.onEdit}" -->
				<!-- 					update=":form:messages"  /> -->
				<p:ajax event="rowEdit" listener="#{agenciasMB.onEdit}"
					update=":form:messages" />
				<p:ajax event="rowEditCancel" listener="#{agenciasMB.onCancel}"
					update=":form:messages" />

				<p:column filterBy="#{ti.agencia}" headerText="Agência" filterMatchMode="contains" style="width:103px">
					<f:facet name="header">
						<h:outputText value="Agência" />
					</f:facet>
					<h:outputText value="#{ti.agencia}" />
				</p:column>

				<p:column style="width:95px">
					<f:facet name="header">
						<h:outputText value="IP" />
					</f:facet>
					<p:cellEditor>
						<f:facet name="output">
							<h:outputText value="#{ti.ip}" />
						</f:facet>
						<f:facet name="input">
							<p:inputText value="#{ti.ip}" label="IP" />
						</f:facet>
					</p:cellEditor>
				</p:column>

				<p:column style="width:85px">
					<f:facet name="header">
						<h:outputText value="Login" />
					</f:facet>
					<p:cellEditor>
						<f:facet name="output">
							<h:outputText value="#{ti.login}" />
						</f:facet>
						<f:facet name="input">
							<p:inputText value="#{ti.login}" label="Login" />
						</f:facet>
					</p:cellEditor>
				</p:column>

				<p:column filterBy="#{ti.rede}" headerText="Rede"
					filterMatchMode="contains" style="width:95px">
					<f:facet name="header">
						<h:outputText value="Rede" />
					</f:facet>
					<p:cellEditor>
						<f:facet name="output">
							<h:outputText value="#{ti.rede}" />
						</f:facet>
						<f:facet name="input">
							<h:selectOneMenu value="#{ti.rede}">
								<f:selectItem itemLabel="ADSL" itemValue="ADSL" />
								<f:selectItem itemLabel="PREFEITURA" itemValue="PREFEITURA" />
								<f:selectItem itemLabel="PROCERGS" itemValue="PROCERGS" />
							</h:selectOneMenu>
						</f:facet>
					</p:cellEditor>
				</p:column>

				<p:column style="width:80px">
					<f:facet name="header">
						<h:outputText value="Velocidade ADSL" />
					</f:facet>
					<p:cellEditor>
						<f:facet name="output">
							<h:outputText value="#{ti.velocidadeadsl}" />
						</f:facet>
						<f:facet name="input">
							<p:inputText value="#{ti.velocidadeadsl}" label="Velocidade ADSL" />
						</f:facet>
					</p:cellEditor>
				</p:column>

				<p:column style="width:95px">
					<f:facet name="header">
						<h:outputText value="Rede Procergs / Nº ADSL" />
					</f:facet>
					<p:cellEditor>
						<f:facet name="output">
							<h:outputText value="#{ti.redeadsl}" />
						</f:facet>
						<f:facet name="input">
							<p:inputText value="#{ti.redeadsl}"
								label="Rede Procergs / Nº ADSL" />
						</f:facet>
					</p:cellEditor>
				</p:column>

				<p:column style="width:90px">
					<f:facet name="header">
						<h:outputText value="Telefone" />
					</f:facet>
					<h:outputText value="#{ti.telefone}" />
				</p:column>

				<p:column style="width:90px">
					<f:facet name="header">
						<h:outputText value="Coordenador" />
					</f:facet>
					<h:outputText value="#{ti.coordenador}" />
				</p:column>

				<p:column style="width:110px">
					<f:facet name="header">
						<h:outputText value="Endereço" />
					</f:facet>
					<h:outputText value="#{ti.endereco}" />
				</p:column>

				<p:column style="width:90px">
					<f:facet name="header">
						<h:outputText value="Horário" />
					</f:facet>
					<h:outputText value="#{ti.horario}" />
				</p:column>

				<p:column style="text-align: center;width:95px" sortBy="#{ti.tunel}">
					<f:facet name="header">
						<h:outputText value="Túnel" />
					</f:facet>
					<p:cellEditor>
						<f:facet name="output">
							<h:outputText value="#{ti.tunel}" />
						</f:facet>
						<f:facet name="input">
							<p:inputText value="#{ti.tunel}" label="Túnel" />
						</f:facet>
					</p:cellEditor>
				</p:column>

				<p:column style="text-align: center;width:95px"
					sortBy="#{ti.usuarioTunel}">
					<f:facet name="header">
						<h:outputText value="Usuário do Túnel" />
					</f:facet>
					<p:cellEditor>
						<f:facet name="output">
							<h:outputText value="#{ti.usuarioTunel}" />
						</f:facet>
						<f:facet name="input">
							<p:inputText value="#{ti.usuarioTunel}" label="Túnel" />
						</f:facet>
					</p:cellEditor>
				</p:column>

				<p:column style="text-align: center;width:95px"
					sortBy="#{ti.numeroChamado}">
					<f:facet name="header">
						<h:outputText value="Nº Chamado" />
					</f:facet>
					<p:cellEditor>
						<f:facet name="output">
							<h:outputText value="#{ti.numeroChamado}" />
						</f:facet>
						<f:facet name="input">
							<p:inputText value="#{ti.numeroChamado}" label="Nº Chamado" />
						</f:facet>
					</p:cellEditor>
				</p:column>

				<p:column headerText="Data Chamado"
					style="text-align: center;width:90px">
					<p:cellEditor>
						<f:facet name="output">
							<h:outputText value="#{ti.dataChamado}"
								rendered="#{not empty ti.numeroChamado}">
									                        <f:convertDateTime dateStyle="date" pattern="dd/MM/yyyy" />
								<f:convertDateTime pattern="dd/MM/yyyy" />
							</h:outputText>
						</f:facet>
						<f:facet name="input">
							<p:inputMask value="#{ti.dataChamado}" mask="99/99/9999"
								label="Data do Chamado">
								<f:convertDateTime pattern="dd/MM/yyyy" />
							</p:inputMask>

								                    <p:calendar id="date" readonlyInput="true" value="#{ti.dataChamado}" pattern="dd/MM/yyyy" mindate="#{agenciasMB.current}" />
						</f:facet>
					</p:cellEditor>
				</p:column>

				<p:column headerText="Usuário" style="text-align: center;width:60px">
					<p:cellEditor>
						<f:facet name="output">
							<h:outputText value="#{ti.usuario}" rendered="#{not empty ti.numeroChamado}" />
						</f:facet>
						<f:facet name="input">
							<h:selectOneMenu value="#{ti.usuario}">
								<f:selectItem itemLabel="Selecione" itemValue="0" />
								<f:selectItem itemLabel="Adriano" itemValue="Adriano" />
								<f:selectItem itemLabel="Cléber" itemValue="Cléber" />
								<f:selectItem itemLabel="Flávio" itemValue="Flávio" />
								<f:selectItem itemLabel="Luis" itemValue="Luis" />
								<f:selectItem itemLabel="Roger" itemValue="Roger" />
							</h:selectOneMenu>
						</f:facet>
					</p:cellEditor>
				</p:column>

				<p:column>
					<f:facet name="header">
						<h:outputText value="Observaçao" />
					</f:facet>
					<p:cellEditor id="obs">
						<f:facet name="output">
							<h:outputText value="#{ti.obs}"
								rendered="#{not empty ti.numeroChamado}" />
						</f:facet>
						<f:facet name="input">
														<p:inputText value="#{ti.obs}"
															label="Observação"   />
							<p:inputTextarea rows="5" cols="30" value="#{ti.obs}"
								counter="display" maxlength="255" counterTemplate="{0}"
								autoResize="true" />
							<h:outputText id="display" />
						</f:facet>
					</p:cellEditor>

				</p:column>

						        	http://www.primefaces.org/showcase/ui/ajax/status.xhtml
				<p:column style="width:60px">
					<p:commandButton value="Ping" id="ajax" update=":form:messages2"
						actionListener="#{agenciasMB.info}"
						styleClass="ui-priority-primary">
						<f:param name="enderecoip" value="#{ti.ip}" />
					</p:commandButton>
				</p:column>

				<p:column style="width:20px">
					<p:rowEditor>
					</p:rowEditor>
				</p:column>

			</p:dataTable>

		</h:form>

	</ui:define>

</ui:composition>

The Bean

Code: Select all

package managedbean;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import model.Ads;
import model.Agencias;
import model.dao.AgenciasDao;
import model.dao.AdsDao;
import org.primefaces.context.RequestContext;
import org.primefaces.event.RowEditEvent;
import util.JasperImpressao;


@ViewScoped
@ManagedBean(name = "agenciasMB")
public class AgenciasMB implements Serializable {

	private static final long serialVersionUID = -1968663509271177335L;

	private String mensagem = "";
	private Agencias agencias = new Agencias();
	private AgenciasDao dao = new AgenciasDao();
	private Date current;

	private List<Agencias> lista = new ArrayList<Agencias>();
	private Agencias nenhum = new Agencias();
	
	private List<Ads> listaAds = new ArrayList<Ads>();
	
	public void onEdit(RowEditEvent event) {
		Agencias ag = ((Agencias) event.getObject());		
		if (dao.gravar(ag) == null)
			this.setMensagem("Erro ao atualizar agência");
		else
			this.setMensagem("Dados atualizados com sucesso.");
	}
	
	public void incluir() {
		
		if (dao.gravar(agencias) == null)
			this.setMensagem("Erro ao salvar Agencia");
		else
			this.setMensagem("Dados salvos com sucesso.");

	}


	public Agencias getAgencias() {		
		return agencias;
	}
	
	public void metodo() {	
		System.out.println("blablabla: " + agencias.getId());
	}
	
	public void setAgencias(Agencias agencias) {
		this.agencias = agencias;
	}

	public AgenciasDao getDao() {
		return dao;
	}

	public void setDao(AgenciasDao dao) {
		this.dao = dao;
	}

	public List<Ads> getListaAds() {
		if(listaAds.isEmpty()){
			listaAds = new AdsDao().todos();
		}
		return listaAds;
	}

	public void setListaAds(List<Ads> listaAds) {
		this.listaAds = listaAds;
	}

	public String retornaSimOuNao(int simOuNao) {		
		if (simOuNao == 1){
			return "Sim";
		}			
		if (simOuNao == 0) {
			return "Não";
		}
		else return "";
		
	}

	public void onCancel(RowEditEvent event) {
		//Don't delete this method
	}

	public String getMensagem() {
		return mensagem;
	}

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

	public List<Agencias> getLista() {
		
		if (lista.isEmpty()) {
			lista = new AgenciasDao().listarOrdenado();
		}
		
		return lista;
	}
	
	public void imprimir(){

		Map<String, Object> parameters = new HashMap<String, Object>();		
		JasperImpressao jp = new JasperImpressao(); 
		
		jp.imprimirRelatorioPdf(parameters, "report3.jasper");
		
	}
	
	public void imprimirAgencia(){

		Map<String, Object> parameters = new HashMap<String, Object>();		
		parameters.put("codigo", agencias.getId());
		
		JasperImpressao jp = new JasperImpressao();
		
		jp.imprimirRelatorioPdf(parameters, "agencia.jasper");
		
	}

	public void setLista(List<Agencias> lista) {
		this.lista = lista;
	}
	
	
	public Agencias getNenhum() {
		Long id;
		id = (long) 5;
		nenhum = new AgenciasDao().pesquisarPorId(id);
		return nenhum;
	}

	public void setNenhum(Agencias nenhum) {
		this.nenhum = nenhum;
	}

	public Date getCurrent() {
        return current;
    }

    public void setCurrent(Date current) {
        this.current = current;
    }
    
    public void importar(String msg) {  
    	System.out.println("imopo");
    	RequestContext context = RequestContext.getCurrentInstance();
    	        context.execute("alert(msg)");  
    	}  

    String action;
    
    public void attrListener(ActionEvent event){
   
  	action = (String)event.getComponent().getAttributes().get("action");
   
    }
    
    public String getIpParam(FacesContext fc){    
        Map<String,String> params = fc.getExternalContext().getRequestParameterMap();    
        return params.get("enderecoip");    
    }    
   
    public void outcome(){           
        FacesContext fc = FacesContext.getCurrentInstance();    
    }    
    
    public void buttonAction2() {
        FacesContext fc = FacesContext.getCurrentInstance();    
        String ip = getIpParam(fc);        
        
    	try {
    	    String[] command = { "cmd", "/k", "start", "ping", "-t", ip };
    	    Process process = Runtime.getRuntime().exec(command);
    	} catch (IOException e) {
    	    e.printStackTrace();
    	}
    }
    
    public void addMensagem(String msg1, String msg2) {
    	FacesContext.getCurrentInstance().addMessage("msgDM", new FacesMessage(FacesMessage.SEVERITY_INFO, msg1, msg2));
    }

    public void info() {		
		FacesContext fc = FacesContext.getCurrentInstance();    
        String ip = getIpParam(fc);
        String pingCmd = "ping " + ip + " -n 10";
        
        try {
            Runtime r = Runtime.getRuntime();
            Process p = r.exec(pingCmd);            

            BufferedReader in = new BufferedReader(new
            InputStreamReader(p.getInputStream(),"ISO-8859-1"));
            String inputLine;
            while ((inputLine = in.readLine()) != null) {
                FacesContext.getCurrentInstance().addMessage("messages2", new FacesMessage(FacesMessage.SEVERITY_INFO, "Ping: ", inputLine));
            }
            in.close();

        } catch (IOException e) {
            System.out.println(e);            
        }
	}
    
    public String buttonAction() {    	
        FacesContext fc = FacesContext.getCurrentInstance();    
        String ip = getIpParam(fc);    
        String pingResult = "";

        String pingCmd = "ping " + ip + " -n 10";
        System.out.println(pingCmd);
        try {
            Runtime r = Runtime.getRuntime();
            Process p = r.exec(pingCmd);            

            BufferedReader in = new BufferedReader(new
            InputStreamReader(p.getInputStream()));
            String inputLine;
            while ((inputLine = in.readLine()) != null) {
                System.out.println(inputLine);
                pingResult += inputLine;
            }
            in.close();
            return pingResult;

        } catch (IOException e) {
            System.out.println(e);
            return "Erro!!";
        }
    }
}
The link of the print of the screen

https://drive.google.com/file/d/0B9mfJc ... sp=sharing

Post Reply

Return to “PrimeFaces”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 19 guests