[Resolvido] Mask em <h:outputText />

10 respostas
D

Boa Tarde Pessoal;
Gostaria de saber se é possivel adicionar marcara em um <h:outputText />, no contexto que tenho tenho um dataTable com a listagem de clientes.
Tenho campos como nome, email, cidade, etc…
Tambem tenho um campo telefone, gostaria de saber se existe um maneira de aplicar mascara neste campo ?

Abaixo segue como estou efetuando impressao da coluna telefone

<p:column>
	<f:facet name="header">Telefone</f:facet>
	<h:outputText value="#{bean.telefone}" />
</p:column>

Ah, gostaria que essa aplicação de mascara fosse genérica, de modo que se eu tivesse outras listagem pudesse utilizar o mesmo metodo para aplicar a mesma

10 Respostas

G

Deverling:
Boa Tarde Pessoal;
Gostaria de saber se é possivel adicionar marcara em um <h:outputText />, no contexto que tenho tenho um dataTable com a listagem de clientes.
Tenho campos como nome, email, cidade, etc…
Tambem tenho um campo telefone, gostaria de saber se existe um maneira de aplicar mascara neste campo ?

Abaixo segue como estou efetuando impressao da coluna telefone

<p:column>
	<f:facet name="header">Telefone</f:facet>
	<h:outputText value="#{bean.telefone}" />
</p:column>

Ah, gostaria que essa aplicação de mascara fosse genérica, de modo que se eu tivesse outras listagem pudesse utilizar o mesmo metodo para aplicar a mesma

Boa tarde!

Eu reparei que voce utiliza Primefaces, veja se ajuda: http://www.primefaces.org/showcase-labs/ui/inputMask.jsf

[]'s

A

Deverling

teria como usar dessa forma:

&lt;h:outputText valou="Telefone"/&gt;
&lt;p:inputMask value="#{bean.telefone}" mask ([telefone removido]" /&gt;
I

Nunca vi isso não cara, eu costumo usar um Converter.

<h:outputText value="#{meuMB.pessoa.cnpj}">
    <f:converter converterId="cnpjConverter" />
</h:outputText>

Converter

import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.ConverterException;
import br.com.caelum.stella.format.CNPJFormatter;
import br.gov.bndes.equ.util.string.StringUtils;

public class CNPJConverter implements Converter {

	public Object getAsObject(FacesContext arg0, UIComponent arg1, String arg2)
			throws ConverterException {
		return arg2;
	}

	public String getAsString(FacesContext arg0, UIComponent arg1, Object arg2)
			throws ConverterException {
		if(arg2 == null){
			return "";
		}
		return StringUtils.formataCNPJ(arg2.toString());
	}
	
	public static String formataCNPJ(String cnpj){
		if(cnpj == null || "".equals(cnpj)){
			return "";
		}
		return new CNPJFormatter().format(cnpj);
	}
}

faces-confg

<converter> <converter-id>cnpjConverter</converter-id> <converter-class>br.gov.bndes.equ.web.converter.CNPJConverter</converter-class> </converter>

Espero que ajude,
Abraço

D

Boa Tarde, nos formularios que tenho estou utilizando os componentes que mandaste no link, mas o que quero “mascarar” não é um “input” e sim um “output” ou “label”, por exemplo, procurei no primefaces e não encontrei componente para mascarar esses componentes.
Att

D

:smiley: converter pode ser interessante, irei testar, mas desculpe-me pela pergunta, será que ele executa ao carregar a pagina dentro de um dataTable ?
Att

I

Deverling:
:smiley: converter pode ser interessante, irei testar, mas desculpe-me pela pergunta, será que ele executa ao carregar a pagina dentro de um dataTable ?
Att

tranquilo cara, executa sim.

D

Obrigado pela dica Igor, funcionou perfeitamente.
Não sei se sabe como, mas se souberes agradeço-te.
No meu dataTable, ao clicar em uma linha, gostaria que ele mandasse o cliente da linha selecionada para uma tela de listagem, já li nos exemplos do site do primefaces como faz, mas para mim não funcionou.

Com o exemplo de ajax que tem no site o seguinte erro é retornado
<p:ajax> Parent not an instance of ClientBehaviorHolder:

E com onRowSelectUpdate=“form” rowSelectListener="#{ClienteCadastroBean.Editar}"

Retorna o seguinte erro no console

AVISO: /gerenciador/content/cliente/clienteListagem.xhtml @43,211 rowSelectListener="#{ClienteCadastroBean.Editar}": Method not found: [email removido](org.primefaces.event.SelectEvent)

Att

I

Deverling:
Obrigado pela dica Igor, funcionou perfeitamente.
Não sei se sabe como, mas se souberes agradeço-te.
No meu dataTable, ao clicar em uma linha, gostaria que ele mandasse o cliente da linha selecionada para uma tela de listagem, já li nos exemplos do site do primefaces como faz, mas para mim não funcionou.

Com o exemplo de ajax que tem no site o seguinte erro é retornado
<p:ajax> Parent not an instance of ClientBehaviorHolder:

E com onRowSelectUpdate=“form” rowSelectListener="#{ClienteCadastroBean.Editar}"

Retorna o seguinte erro no console

AVISO: /gerenciador/content/cliente/clienteListagem.xhtml @43,211 rowSelectListener="#{ClienteCadastroBean.Editar}": Method not found: [email removido](org.primefaces.event.SelectEvent)

Att

Show de bola cara!

Eu costumo fazer isso usando um <h:commandButton> e coloco um <f:setPropertyActionListener> setando o objeto da tabel para o MB. (se quiser mando um exemplo)
Mas pelo que eu percebi você quer que ao clicar em qualquer lugar da linha daquela tabela ela pegar o objeto e passar pra uma tela de editar. Desse jeito nunca fiz, mas percebi pelo erro que você colocou que o método não está sendo encontrado, será que é porque você não colocou o “editar” com “E” maiúsculo e no MB minúsculo?

D

Sim, pensei a mesma coisa que você, mas está correto.
E no site do primefaces também tem o exemplo que mencionaste (com <h:commandButton>) irei fazer assim também e não perder mais tempo com isso.
Obrigado pelo força Igor
Att

S

Sou bem novo em JAVA, na verdade comecei a brincar ontem, programo em outras linguagens já.

E eu tinha a mesma dúvida do amigo acima como formatar um , no final das contas eu testei o Código do IGOR GABRIEL, e funcionou perfeitamente mas como estou usando JFS2.0 e estou fugindo do faces-config.xml (igual diabo foge da cruz.) eu achei de um Chinês como fazer isso com @Annotations

Ficando da seguinte maneira a classe:

package br.com.util.converter;

import br.com.caelum.stella.format.CNPJFormatter;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.ConverterException;
import javax.faces.convert.FacesConverter;

/**
 * Converter para CNPJ.
 *
 * Classe base feita pelo Igor gabriel a qual servirá de base para os outros converters
 * próximos converters.
 *
 * @author Igor Gabriel
 */
@FacesConverter("cnpjConverter")
public class CNPJConverter implements Converter {

  @Override
  public Object getAsObject(FacesContext arg0, UIComponent arg1, String arg2)
          throws ConverterException {
    return arg2;
  }

  @Override
  public String getAsString(FacesContext arg0, UIComponent arg1, Object arg2)
          throws ConverterException {
    if (arg2 == null) {
      return "";
    }
    CNPJFormatter f = new CNPJFormatter();
    return f.format(arg2.toString());
  }

  public static String formataCNPJ(String cnpj) {
    if (cnpj == null || "".equals(cnpj)) {
      return "";
    }
    return new CNPJFormatter().format(cnpj);
  }
}

FONTE: http://www.mkyong.com/jsf2/custom-converter-in-jsf-2-0/

Criado 17 de novembro de 2011
Ultima resposta 17 de jun. de 2012
Respostas 10
Participantes 5