Recibir un parámetro numérico en una JSP

30/Jul/2009 Java , , , , , 5 Comentarios

En el artículo Recibir parametros en una JSP veíamos como de una forma sencilla podíamos leer los parámetros que le llegan a una JSP.

El .getParameter("dato") y dejarlo en un String está muy bien. Pero, qué sucede si el dato que nos envían es un número (eso nos planteaba @Er)...

Pues la forma de hacerlo es muy sencilla. Para ello vamos a implementar una JSP a la cual le pasemos 2 datos numéricos, los cuales nos devolverá sumados.

Realmente la forma de recuperar los datos sigue siendo la misma que en Recibir parametros en una JSP. Es decir, utilizamos el método .getParameter("dato").

  1.  
  2. String datoUno = request.getParameter("dato1");
  3. String datoDos = request.getParameter("dato2");
  4.  

Lo que sucede es que tenemos que convertir los datos de tipo String en tipo numérico, por ejemplo en int. Para ello nos apoyaremos en la clase Integer y concretamente en el método .parseInt()

  1.  
  2. int uno = Integer.parseInt(request.getParameter("dato1"));
  3. int dos = Integer.parseInt(request.getParameter("dato2"));
  4.  

Pero qué sucede si el usuario no nos ha pasado un número en el parámetro. En este caso el método .parseInt() nos va a fallar, dándonos una NumberFormatException. Es por ello que tendremos que prevenir dicha excepción:

  1.  
  2. try {
  3. int uno = Integer.parseInt(request.getParameter("dato1"));
  4. int dos = Integer.parseInt(request.getParameter("dato2"));
  5.  
  6. } catch(NumberFormatException nfe) {
  7. out.println("Los datos recibidos no son números enteros");
  8. }
  9.  

Ahora solo nos quedará hacer la suma y mostrar el resultado en pantalla. En este caso convertimos un número en una cadena de caracteres mediante el método .toString(), también de la clase Integer.

Para mostrar los datos por pantalla utilizamos el método out.println(). Veamos como queda nuestro código:

  1.  
  2. try {
  3. int uno = Integer.valueOf(request.getParameter("dato1"));
  4. int dos = Integer.valueOf(request.getParameter("dato2"));
  5.  
  6. int suma = uno + dos;
  7.  
  8. out.println("La suma de " + datoUno + " + " + datoDos + " = " + Integer.toString(suma));
  9.  
  10.  
  11. } catch(NumberFormatException nfe) {
  12. out.println("Los datos recibidos no son números enteros");
  13. }
  14.  

Vídeos sobre JSP


5 comentarios en “Recibir un parámetro numérico en una JSP”

Víctor Cuervo

Geny

Hola, tengo un problema para pasar el parámetro a otro jsp porque el método request.getParameter() siempre me regresa un null. Tengo una variable llamada num de tipo entero: String tabla = request.getParameter(“num”); pero cuando muestro el valor de tabla siempre pone un null, y quisiera saber como puedo solucionar este problema 🙁

Víctor Cuervo

Víctor Cuervo

Geny,

Ten en cuenta que los datos que se pasan siempre son cadenas. ¿Tienes el código en algún sitio para echarle un ojo?

Saludos.

Víctor Cuervo

acastillo

Hola, Tu ejemplo me sirvio de mucho, pero que pasa cuando quiero recibir un parametro numerico dentro de un ciclo(for), algo como esto:

for (int i = 0; i < example; i++) {

int example_2= Integer.parseInt(webRequest.getParameter("example_2_%d", i));

nota: uso "webrequest" en lugar de "request"

espero que la pregunta sea clara

saludos

Víctor Cuervo

Víctor Cuervo

@oscar,

Con el Integer estás validando que solo sean números enteros. ¿Qué validación quieres hacer exactamente?

Víctor Cuervo

oscar

si yo tengo por ejemplo este codigo de una matriz nxn como hago para q me reconosca nada mas numeros enteros

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*