[Resolvido] Mask em <h:outputText />

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

[quote=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
[/quote]

Boa tarde!

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

[]'s

Deverling

teria como usar dessa forma:

&lt;h:outputText valou="Telefone"/&gt;
&lt;p:inputMask value="#{bean.telefone}" mask (99) 9999-9999" /&gt;

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

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

: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

[quote=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[/quote]

tranquilo cara, executa sim.

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: classe.projeto.bean.ClienteCadastroBean@75fd2f.Editar(org.primefaces.event.SelectEvent)

Att

[quote=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: classe.projeto.bean.ClienteCadastroBean@75fd2f.Editar(org.primefaces.event.SelectEvent)

Att[/quote]

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?

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

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 <h:outputText>, 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:

[code]
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);
}
}[/code]

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