最近被问到一个问题,在使用org.apache.struts.validator.ValidatorActionForm的时候,自己写的actionForm直接继承了ValidatorActionForm,这样返回的ActionErrors就就会有很多条,如果不做处理的话,页面上会显示的很乱。于是找到了前一阵子的解决办法。
在自己的actionForm里,重写validate方法,如下:

public ActionErrors validate(ActionMapping mapping, HttpServletRequest request)
{
// 执行validate.xml,取得结果
ActionErrors errors = super.validate(mapping, request);
ActionMessage message = null;
// 取得第一个error
Iterator it = errors.get();

if (it.hasNext())
{
message = (ActionMessage) it.next();
}
// 创建新error对象集
ActionErrors messages = new ActionErrors();
// 添加
messages.add(org.apache.struts.action.ActionMessages.GLOBAL_MESSAGE,message);
// 返回
return messages;
}
在自己的actionForm里,重写validate方法,如下:

public ActionErrors validate(ActionMapping mapping, HttpServletRequest request)
{
// 执行validate.xml,取得结果
ActionErrors errors = super.validate(mapping, request);
ActionMessage message = null;
// 取得第一个error
Iterator it = errors.get();
if (it.hasNext())
{
message = (ActionMessage) it.next();
}
// 创建新error对象集
ActionErrors messages = new ActionErrors();
// 添加
messages.add(org.apache.struts.action.ActionMessages.GLOBAL_MESSAGE,message);
// 返回
return messages;
}
本文介绍了一种在使用Struts框架ValidatorActionForm时减少页面显示错误数量的方法。通过重写validate方法,只保留第一个验证错误,使得页面更加简洁。
917

被折叠的 条评论
为什么被折叠?



