Fala galera… Estou com dificuldade de identificar qual o campo que causou um determinada exception de negócio. Preciso colocar o foco no campo e apagar seu valor.
Segue meu tratamento:
try{
sh = login.validarUsuarioSAP(chapaVWBSh);
}catch(Exception e){
e.printStackTrace();
errors.add(ActionErrors.GLOBAL_ERROR, new ActionError(CommonKeys.ERRO_INESPERADO, e.getMessage()));
this.saveErrors(request, errors);
}
Na JSP:
<%@page import="org.apache.struts.Globals"%>
<%@page import="org.apache.struts.action.ActionErrors"%>
<%
ActionErrors errors = (ActionErrors)request.getAttribute(Globals.ERROR_KEY);
if(errors != null && !errors.isEmpty()) {
String errorField = (String)errors.properties().next();
out.println("<script language=\"JavaScript\">alert('"+errorField+"')</script>");
out.println("<script language=\"JavaScript\">if (document.forms[0].elements('"+errorField+"')) { document.forms[0].elements('"+errorField+"').focus(); }</script>");
}
%>
Valeu!!