[RESOLVIDO]dúvida com data no jsf

14 respostas
D

OPa :smiley:

Tenho um campo de data na minha jsp e no bean, eu declarei como date.

<h:inputText styleClass="campoTexto" id="periodoInicial" value="#{operador.periodoInicial}">
									<f:convertDateTime type="date" pattern="dd/mm/yyyy" />
								</h:inputText>
private Date periodoInicial;
//get e set

Tenho 2 dúvidas:

  • posso usar uma mascara para digitar no campo? Ex: 10/10/2007
  • como faço para pegar a data em dd/mm/yyyy? Eu coloquei o pattern, mas não ta funcionando legal, ele retorna a data Fri Jan 11 00:07:00 BRST 2008 ( 10/07/2008 )

[]'s

14 Respostas

L

Opa, blz?

Pra usar uma máscara, você vai precisar de um conversor personalizado.
Porque você não usa facelets ou myfaces?

O pattern implementa o SimpleDateFormat, portanto passe dd/MM/yyyy

M

Lucas Lacerda Gertel:
Opa, blz?

Pra usar uma máscara, você vai precisar de um conversor personalizado.
Porque você não usa facelets ou myfaces?

O pattern implementa o SimpleDateFormat, portanto passe dd/MM/yyyy

Pq eu comecei sem o facelets aqui e fui tentar configurar e deu uma porrada de pau rsrs

To usando o rich:faces…

Como assim, o pattern, é só eu colocar dd/MM/yyyy? Eu coloquei isso e não resolveu :oops:

L

Seguinte, acho que era pra funcionar assim mesmo.
Mas como tá usando rich tenta assim:

<rich:calendar currentDate="" popup="true" datePattern="dd/MM/yyyy" value="#{searchBean.endDate}" />

No Bean tu só precisa configurar o seu atributo como Date e definir os seters e geters =oP

Abraçs

D

Mas tive que mudar pra Calendar e agora quando vou entrar na página, eu recebo a exceção:

Vou ter que usar Date mesmo no backing bean?

[]'s

L

Sim!
Qq coisa depois tu dá um cast.

Sempre usei date e nunca encontrei problemas.
[]'s

D

MAs Date vou ter que fazer uma puta gambiarra pra poder diminuir alguns dias né? Pq assim que entrar na pagina, já vou setar as datas iniciais e final

L

Tu pode setar isso de algumas formas.
Da forma que entendi seria como uma data padrão para todo o sistema?

Isto pode ser feito se você definir a data dentro do bean com um valor padrão dentro do .
Defina uma para setar o valor padrão da data quando instanciado o objeto.

Depois é só injetar o bean de data nos beans que vão utilizá-los.
[]'s

D

Não tem como usar Calendar direto?

Date tem mtos métodos depracated além do mais =/

L

Date não é deprecated!
Alguns métodos sim…

Tu pode dar um cast se quiser Calendar… mas o calendar do rich gera um Date mesmo…

D

Bom, vou deixar com Date…resolvi o problema com:

periodoFinal = new Date();
		periodoInicial = new Date();
		periodoInicial.setDate(periodoFinal.getDate() - 3);

//
		Calendar inicio = Calendar.getInstance();
		Calendar fim = Calendar.getInstance();
		inicio.setTime(dataInicial);
		fim.setTime(dataFinal);

Valeu amigo

[]'s

L

Relaxa meu velho.
Qq coisa manda msg!

Abraços

M

David,

vc pode usar o “Calendar”, a única diferença é que vc precisa apontar para o atributo “time” do seu Calendar.

Por exemplo:

<h:inputText styleClass="campoTexto" id="periodoInicial" value="#{operador.periodoInicial.time}">  
        <f:convertDateTime type="date" pattern="dd/mm/yyyy" />
</h:inputText>

É isso aí.

P

Valew mfcn2000,

Não sei de David adotou sua solução, mas pra mim que tinha o mesmo problema, foi uma mão na roda!!!

M

Boa tarde amigos

Estou com este problema:

Criei um validator e a string que chega = Tue Dec 21 00:00:00 BRST 2010.
Como converter isto para o formato dd/MM/yyyy?
na página uso o seguinte:

<h:outputLabel value="Entrada" for="edtDataEntrada" />
					<rich:calendar id="edtDataEntrada" datePattern="dd/MM/yyyy"
						locale="BR" cellWidth="2" 
						enableManualInput="true" label="Selecione uma data"
						value="#{simulacaoComposicaoDividaController.simulacaoRequest.dataEntrada}">
						<f:validator validatorId="validaDataEntrada" />
						<f:convertDateTime  type="date"  pattern="dd/MM/yyyy" />

					</rich:calendar>
					<rich:message for="edtDataEntrada" style="color: red" />

Cabeçalho do método:

public class ValidatorDataEntrada implements Validator
{
	public void validate(FacesContext context, UIComponent componente, Object objeto) throws ValidatorException
	{
		String dataStr = objeto.toString();

no caso , acho que o calendar do rich já deveria trazer a data igual ao datePattern=“dd/MM/yyyy”

Alguém pode me ajudar?

Obroigado.

Criado 17 de junho de 2008
Ultima resposta 4 de jan. de 2011
Respostas 14
Participantes 6