[RESOLVIDO] Salvar numero aleatorio no BD com Struts

6 respostas
Ace

Bom dia pessoal,
Tenho um formulario e preciso que a cada novo usuario ao se cadastrar ele grave em um campo no banco um numero randomico, minha dificuldade é que o mesmo não esta gravando esse numero no banco randomico. alguem poderia me dar uma força de como resolver isso? não sei onde estou vacilando…

Modelo

//Outros atributos
private Integer nrosorte;

public Integer getNrosorte() {
		return nrosorte;
	}
	public void setNrosorte(Integer nrosorte) {
		this.nrosorte = nrosorte;
	}

Action

public ActionForward cadastrar(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {

                    // pega sessão
                    // faz diversas validações

                //Aqui não tenho ideia de como fazer achei que assim funcionaria
                Random random = new Random();		
		usuario.setNrosorte(random.nextInt(100000000));

                session.setAttribute("userSession", usuario);

		return mapping.findForward("cadastro");	
}

6 Respostas

A

Para gerar números aleatórios no java, você pode usar Math.random(), ele gera um número aleatório >=0.0 e < 1.0. Se você quiser converter para um número inteiro, basta multiplicar e dar o cast.

Ace

Poderia me mostrar um exemplo se naum for te incomodar?

vlw

Ace

Fiz algo do tipo

Math.random();
		int valor = (int) (Math.random() * 100000000);
		usuario.setNrosorte(valor);
				

		session.setAttribute("userSession", usuario);

		return mapping.findForward("cadastro");

não rolou! =\

Ace

Galera a solução não é a das melhores mas nesse momento foi a qual esta me suprindo as necessidades, depois melhoro isso em meu código…

Solução:

  • utilizei um scriptlet em minha jsp passando uma variavel para o math.random.
  • criei um input hidden com o valor da variavel.

Segue exemplo:

<%
int rand = (int) Math.floor(Math.random() * 100000000);  //coloquei este numero grande para que a possibilidade dele gerar o mesmo numero seja menor.
%>
<input type="hidden" name="user.nrosorte" value='<%= rand%>'>

Foi uma certa gambiarra provisória…
Vlw pela atenção…

A

Carinha, fale exatamente por que não rolou, porque é pra rolar… Classe exemplo:

public class teste {

	
	public static void main(String [] args) {
		
		int i = (int)(Math.random() * 100000000);
		System.out.println(i);
		
	}
}
Ace

Pois é meu camarada, tbm achei que iria funcionar dentro do metodo,
debuguei e ele passa pelo random normalmente mas estava inserindo null.

mas como disse, estou com pressa com este projeto, naum posso ficar perdendo tempo com isso…

:smiley:

Vlw Brow…

Criado 10 de janeiro de 2012
Ultima resposta 10 de jan. de 2012
Respostas 6
Participantes 2