package num;import java.util.*;
public class NumeroBean {int respuesta;
boolean adivino; String pista; int numIntentos; public NumeroBean() { reset(); } public void setNumero(String numero) { numIntentos++; int g; try { g = Integer.parseInt(numero); } catch (NumberFormatException e) { g = -1; } if (g == respuesta) { adivino = true; } else if (g == -1) { pista = "un número"; } else if (g < respuesta) { pista = "uno más grande"; } else if (g > respuesta) { pista = "uno más chico"; } } public boolean getAdivino() { return adivino; } public String getPista() { return "" + pista; } public int getNumIntentos() { return numIntentos; } public void reset() { respuesta = Math.abs(new Random().nextInt() % 100) + 1; adivino = false; numIntentos = 0; }}
En el jsp llamado adivinaNumero.jsp, se utilizan los métodos definidos en el bean, de esta manera se puede ver como es el uso de elementos script en las páginas JSP. El siguiente código es el encargado de mostrar los mensajes al usuario con los valores que se definen en la clase NumeroBean.
<%@ page import = "num.NumeroBean" %><jsp:useBean id="nbean" scope="session" /><jsp:setProperty name="nbean" property="*" /><html> <head><title>Adivina el número</title></head> <body bgcolor="white"> <font size=4> <% if (nbean.getAdivino()) {%> Felicidades! adivinaste. Después de <%= nbean.getNumIntentos()%> intentos.<p> <% nbean.reset();%> <a href="adivinaNumero.jsp">Intentar de nuevo</a>? <% } else if (nbean.getNumIntentos() == 0) {%> Bienvenido al juego de adivinar el número.<p> ¿En qué número estoy pensando? del 1 al 100.<p> <form method=get> Escribe el número? <input type=text name=numero> <input type=submit value="Submit"> </form> <% } else {%> Bien, pero no. Intenta con <b><%= nbean.getPista()%></b>. Tú has hecho <%= nbean.getNumIntentos()%> intentos.<p> ¿En qué número estoy pensando? del 1 al 100.<p> <form method=get> Escribe el número? <input type=text name=numero> <input type=submit value="Submit"> </form> <% }%> </font> </body></html>
Para probar la aplicación es necesario escribir la siguiente dirección en el navegador:
No hay comentarios:
Publicar un comentario