JSP (Java Server Page) - comprobaciones

 
Vista:

comprobaciones

Publicado por nepthis (37 intervenciones) el 26/04/2007 20:26:45
Hola a todos!
Estoy intentado recoger los parámetros de un formulario, y pretendo que si todos son vacíos me salga una página de error. El caso es que no hace caso de la siguiente comprobación y me deja insertar en la base de datos. ¿Cómo se debe hacer esta comprobación?¿por qué no funciona?

if ((titulo.equals("")) && (url.equals("")) && (direccion.equals("")) && (texto.equals("")))
{
getServletConfig().getServletContext().getRequestDispatcher("/libreria/ControladorDirecciones?x=4").forward(request, response);
}
else
{
......................
}
Muchas gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

El resto del código

Publicado por Gonzalo (72 intervenciones) el 27/04/2007 11:24:01
¿De dónde vienen titulo, url, direccion y texto? ¿Cómo se inicializan y cómo recoges los parámetros y demás? En resumen, pon el código que viene antes de la comprobación, por favor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:El resto del código

Publicado por laura (37 intervenciones) el 28/04/2007 13:00:41
La verdad es que es algo extraño, porque parece que lo hace bien, pero algunas veces, no se la razón, la inserta, y el código no cambia.

public class NuevaDireccion extends HttpServlet {

private String titulo = null;
private String url = null;
private String dir = null;
private String texto = null;
.................................................
public void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
doGet(request, response);

}

public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException

{
try
{

HttpSession session = request.getSession(false);

if (session != null)
{
Usuario usuario = (Usuario) session.getAttribute("usuario");

if ((usuario != null) && (usuario.isRegistrado()))

{
.................................

// Adquisición de los valores del formulario

titulo = request.getParameter("titulo");
url = request.getParameter("url");
dir = request.getParameter("direccion");
texto = request.getParameter("texto");

String x = request.getParameter("x");
if (x.equals("0")) // queremos insertar una direccion nueva
{
if (titulo.equals("") && url.equals("") && dir.equals("") && texto.equals(""))
{
getServletConfig().getServletContext().getRequestDispatcher("/libreria/ControladorDirecciones?x=4").forward(request, response);
}
else
...................................................
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:El resto del código

Publicado por Gonzalo (72 intervenciones) el 28/04/2007 17:30:34
¿No te da, en ese caso, ninguna excepción o es que las capturas y no las miras?

Lo digo porque hay una situación en la que esto que pones no funciona. No sé si será el caso, pero te lo cuento.

Cuando haces titulo = request.getParameter("titulo") si _no_ se ha recibido titulo, no te va a devolver "" sino null. (Lo mismo para los 4 parámetros, claro) Así, si alguno no es que llegue vacío, sino que no llega, entonces ese código fallaría.

Sea este el caso o no, siempre es recomendable que cuando recibas parámetros, antes de empezar a mirarlos, compruebes que los tienes (!= null).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:El resto del código

Publicado por laura (37 intervenciones) el 28/04/2007 20:25:02
Gracias Gonzalo. Esto que me dices no me lo había planteado.
Ya he descubierto porqué inserta algunas veces (no me estaba dando cuenta porque realmente no mandaba información): si los parámetros son "" no inserta, el problema lo tengo si el usuario mete en el formulario una línea en blanco, un carácter en blanco,....
¿Cómo puedo controlar esto?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:El resto del código

Publicado por Gonzalo (72 intervenciones) el 29/04/2007 18:55:10
Lo más fácil es en lugar de comprobar titulo.equals(""), hacer ( (titulo != null) && titulo.trim().equals("") )

Primero lo del null que decía antes, y luego en lugar de simplemente coger el parámetro y comparar con "", hacemos antes un trim, es decir, quitamos los espacios del principio y final (" bla bla ".trim() -> "bla bla")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar