Foros del Web » Programación para mayores de 30 ;) » Java »

problemilla con actionerror

Estas en el tema de problemilla con actionerror en el foro de Java en Foros del Web. Hola a todos, tengo una sencilla aplicación con Struts que consta de un formulario con tres campos. Lo único que hago es rellenar los campos ...
  #1 (permalink)  
Antiguo 30/05/2007, 14:43
 
Fecha de Ingreso: octubre-2006
Mensajes: 50
Antigüedad: 17 años, 6 meses
Puntos: 0
problemilla con actionerror

Hola a todos, tengo una sencilla aplicación con Struts que consta de un formulario con tres campos. Lo único que hago es rellenar los campos y mandarlo a una Clase action que valida si alguno está vacio (ValidateEmployeeAction). El código es:

package com.example;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionServlet;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;

import java.io.IOException;
import java.util.List;

public class ValidateEmployeeAction extends Action
{
public ActionForward perform(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException
{
ActionErrors errors = new ActionErrors();
ActionError error = null;
EmployeeForm empForm = (EmployeeForm)form;

String name = empForm.getName();
if(name.trim().equals(""))
{

errors.add("", new ActionError("error.missing.name"));
}

String department = empForm.getDepartment();
if(department.trim().equals(""))
{
error = new ActionError("error.missing.department");
errors.add(ActionErrors.GLOBAL_ERROR, error);
}

String[] skills = empForm.getSkills();
if(skills == null)
{
error = new ActionError("error.missing.skills");
errors.add(ActionErrors.GLOBAL_ERROR, error);
}

if(errors.size() >0)
{
saveErrors(request, errors);
return new ActionForward(mapping.getInput());
}

return mapping.findForward("success");
}
}

Tengo el correspondiente archivo .properties que describe los diferentes errores del 'actionerror' así:

error.missing.name=<li><font color="red">Por favor, introduce el nombre</font></li>

El problema está en que cuando esos errores se me muestran en la pantalla (para ello utilizo la etiqueta <html:errors/>) me aparecen dos "null", uno por delante y otro por détrás del texto, algo así:

null Por favor, introduce el nombre null.

He probado a ver de donde pueden venir esos null, pero no consigo averiguarlo.

Saludos.
  #2 (permalink)  
Antiguo 01/06/2007, 05:56
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 2 meses
Puntos: 10
Re: problemilla con actionerror

Wenas

Primero disculpas porque no tengo ni idea de struts y es muy probable que este diciendo una tonteria, pero a ver si va a ser algo de esto.

no sera el <li> y el <font>. O puede que se haga la picha un lio con las comillas de "red".

Un saludo.
  #3 (permalink)  
Antiguo 01/06/2007, 08:40
 
Fecha de Ingreso: octubre-2006
Mensajes: 50
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: problemilla con actionerror

Gracias por tu respuesta pero no es eso , ya lo probé. Un saludo.
  #4 (permalink)  
Antiguo 26/06/2007, 15:07
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Re: problemilla con actionerror

Prueba especificando el nombre de la propiedad, que en ese caso seria name... aparte es ActionMessage.
Mira como quedaria:
Código HTML:
ActionErrors errors = new ActionErrors();
errors.add("name", new ActionMessage("error.missing.name")); 
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:35.