JSF - Converter - Parametros

Olá senhores, preciso de uma ajudinha.

tenho o seguinte problema:

tenho uma lista que foi retornada da base de dados e está sendo exibida na tela.
O problema é que tenho um campo que pode estourar o tamanho da tela.
(h:outputText)

Pensei em criar um converter que “trunca” esse campo.

Então eu usaria:

f:converter converterId=“MeuConverter”.

Funcionaria perfeitamente,
mas tenho várias telas que podem ter campos com tamanhos diferentes, logo, esse converter não seria sempre eficiente.

Tem alguma maneira de passar parâmetro para o converter como é feito em outros nativos do jsf?
Exemplo o pattern do convertNumber
Pois assim eu conseguiria passar o numero de casas que eu quero, e ele faria o substring retornando o texto.


Sem ser essa maneira, alguém sabe outra maneira de limitar o número de letras?

Obrigado,
Abraços

da uma passada no google :smiley:

http://www.devmedia.com.br/articles/viewcomp.asp?comp=7512

[code]<h:inputText value="#{ApostaBean2.nome}"

id=“nome”>

<f:validateLength minimum=“5” maximum=“16”/>

</h:inputText>[/code]

“Da uma passada no google?”

A pergunta foi outra, não pedi validação. E sim Conversão.
E o meu problema não é validar tamanho do input.

Agradeço a resposta.

Double post -,-Sorry.

hmm … posta os fontes ai pra galera pode ajudar :smiley:

tem q t um jeito hehe

ps: acho q eu entendi mal antes … :stuck_out_tongue:

Seria mais ou menos o seguinte:

Tenho na base um cpf sem pontos e traço:

00000000000

<h:outputText value="#{managedBean.texto}"> <f:converter converterId="cpfConverter"/> </h:outputText>

cpfConverter:

public String getAsString(FacesContext arg1, UIComponent arg2,
			Object valor) throws ConverterException {
                ...
		return cpfFormatado
	}

Isso funciona perfeitamente para CPF, pois a formatação seria sempre a mesma.
Sairia 000.000.000-00.

Meu problema:
Dentro da minha aplicação tenho várias telas e em algumas delas, o texto pode estourar o tamanho da tela.
Como cada campo tem um número diferente de caracteres, o que eu queria fazer é ter um converter que recebe como parâmetro o número que ele tem que truncar, exemplo:

Nome
<h:outputText value="#{managedBean.texto}">
    <f:converter converterId="truncar" param="15"/>
</h:outputText>

Converter:

public String getAsString(FacesContext arg1, UIComponent arg2,
			Object valor) throws ConverterException {
                ***Receber o parâmetro***

		return valor.toString().substring(0,param).
	}
Endereço
<h:outputText value="#{managedBean.texto}">
    <f:converter converterId="truncar" param="55"/>
</h:outputText>

Assim eu não precisaria fazer um converter para cada campo.

Entendeu mais ou menos?

Obrigado,
Abraços.

mabiel,

Use a tag f:attribute dentro do componente outputText e recupere a partir do parâmetro componente no seu converter.

Dá uma olhada nesse link aqui:

http://seamcity.madeinxpain.com/archives/como-limitar-el-numero-de-caracteres-que-muestra-un-houtputtext

flw