Preciso mostar um relógio em uma página jsp(jsf), e depois recuperar esse valor e armazenar em um banco. Alguém tem alguma dica ou tutorial que faça isso?
Att,
Ricardo
Preciso mostar um relógio em uma página jsp(jsf), e depois recuperar esse valor e armazenar em um banco. Alguém tem alguma dica ou tutorial que faça isso?
Att,
Ricardo
Um relógio tipo HH:mm:ss?
Se for isso, o server side só vai servir para prover a hora inicial, pois para o resto terá que usar JavaScript.
Isso mesmo, não tem uma forma do formulario ficar com a mesma hora(HH:mm:ss) do servidor?
Att,
Ricardo
Para mostrar o relógio:
new java.text.SimpleDateFormat("HH:mm:ss").format(new java.util.Date())
Jogue esse valor em um campo hidden e pega ele via “request.getAttribute” e salva no banco
O problema não é pegar a data/hora, e sim mostar a hora para os usuários. Eu estou fazendo um ponto eletrônico onde os usuários irão fazer um login e caso tenha sucesso irá para uma outra página onde eu quero mostar um relógio por durante + ou - 30 segudos, depois disso o formulário será fechado. Pelo que eu andei pesquisado a solução é sincronizar o relógio da estação com o servidor quando ele fizer o login na rede. Mas o meu problema é que tem alguns “espiritos de porco” que ficam fuçando e elteram a data/hora e depois falam q não mexeram em nada. Se alguém tiver uma outra solução bem vinda!!!
Att,
Ricardo
Tive exatamente esse problema e resolvi mais ou menos assim:
// com velocity pego o valor de uma variavel no
// servlet contendo um valor long indicando a data.
// Por exemplo new Date().getTime()
var now = new Date( $time );
window.setInterval( printTime, 1000 ); // chama essa função a cada 1 segundo
function printTime() {
now.setSeconds( now.getSeconds() + 1 );
var time = document.getElementById( 'time' );
time.innerHTML = now.getHour() + ":" + now.getMinutes() + ":" + now.getSeconds();
}
...
<p id="time"/>
O form da um refresh a cada um segundo? Será que você poderá explicar mais detalhadamente? Na camada view estou utilizando jsf.
Att,
Ricardo
Não há refreshs envolvidos.
Ao fazer isso
window.setInterval( printTime, 1000 );
estamos dizendo ao browser executar a função printTime() a cada 1 segundo.
Por sua vez, esta função incrementa a data enviada pelo servidor em 1 segundo e imprime dentro do paragrafo HTML.
Agora, para pegar a data do servidor utilizando JSF não sei como faz. O que é necessário fazer é inserir no objeto HttpServletResponse um long indicando a data do server ( new Date().getTime() ), e atribuir isso à variavel em javascript, como fiz aqui
var now = new Date( $time ); // $time é o valor enviado pelo server
Se não me engano, o equivalente em JSP seria
var now = new Date( <%= new Date().getTime() %> );
Valeu pela dica, eu me viro aqui!!!
Att,
Ricardo
E essa parada funcionou mesmo?
Pq não estou conseguindo aki