如何检查特定错误的 ActionErrors?
How do I check ActionErrors for a specific error?
我正在为我们的应用程序编写自定义 ActionErrors
消息,以针对特定情况显示特定错误。
public class ErrorForm extends ActionForm{
public ActionErrors validateForm(ActionMapping mapping, HttpServletRequest request){
errs.add(FORM_KEY_ACTION_TYPE, new ActionMessage(WebGlobals.CUSTOM_ERROR));
return errs;
}
}
不幸的是,我们代码的结构方式(我宁愿不尝试出售“让我们为一个小的改变重组四个 classes),ErrorForm
是一个 parent 到其他几个 classes。由于我在代码片段中显示的内容以外的原因,验证必须在 ErrorForm
class.
中完成
当parentclass结束,return将ActionErrors
转为child,childclass 添加自己的错误消息,如下所示。
public class ErrorThrowingForm extends ErrorForm {
public ActionErrors postValidate(ActionMapping mapping, HttpServletRequest request)
{
ActionErrors errs = super.validateForm(mapping, request);
if (errs.size() > 0)
errs.add(WebGlobals.GENERAL_ERROR_KEY, new ActionMessage(WebGlobals.PROP_FIELD_ERROR));
return errs;
}
}
尽管错误消息是从 parent class 中 return 编辑的, 仅 child class' s 错误信息显示,而parent 的错误信息永远不会出现。抛出验证错误的表单字段在其旁边显示 !,但不显示关联的 Custom_Error 消息。
我想return自定义错误信息。而且我无法在 children class 中添加该错误。
我如何确定我的 ActionErrors
消息中有哪些错误,以便我可以检查我的自定义错误并 return 它,而不是依赖于 children class?
我已经尝试简单地删除整个 "if" 块并直接 returning 错误,因为它们是从 validateForm
方法收到的,但是当我这样做时,错误消息在页面上显示失败,不知道为什么。
parent 形式应该是 ValidatorForm
的 child 用你的话说,你应该更好地理解。在 parent 的 child 表单中,您应该添加 validate
方法来调用验证。那么在parent实现中你最好在第一条语句调用框架的super方法,然后你可以在框架返回的ActionErrors
中添加错误信息。希望你明白这一点。
public class ErrorForm extends ValidatorForm{
public ActionErrors validateForm(ActionMapping mapping, HttpServletRequest request){
ActionErrors errs= super.validate(mapping, request);
errs.add(ActionErrors.GLOBAL_MESSAGE, new ActionMessage(WebGlobals.CUSTOM_ERROR));
return errs;
}
}
我正在为我们的应用程序编写自定义 ActionErrors
消息,以针对特定情况显示特定错误。
public class ErrorForm extends ActionForm{
public ActionErrors validateForm(ActionMapping mapping, HttpServletRequest request){
errs.add(FORM_KEY_ACTION_TYPE, new ActionMessage(WebGlobals.CUSTOM_ERROR));
return errs;
}
}
不幸的是,我们代码的结构方式(我宁愿不尝试出售“让我们为一个小的改变重组四个 classes),ErrorForm
是一个 parent 到其他几个 classes。由于我在代码片段中显示的内容以外的原因,验证必须在 ErrorForm
class.
当parentclass结束,return将ActionErrors
转为child,childclass 添加自己的错误消息,如下所示。
public class ErrorThrowingForm extends ErrorForm {
public ActionErrors postValidate(ActionMapping mapping, HttpServletRequest request)
{
ActionErrors errs = super.validateForm(mapping, request);
if (errs.size() > 0)
errs.add(WebGlobals.GENERAL_ERROR_KEY, new ActionMessage(WebGlobals.PROP_FIELD_ERROR));
return errs;
}
}
尽管错误消息是从 parent class 中 return 编辑的, 仅 child class' s 错误信息显示,而parent 的错误信息永远不会出现。抛出验证错误的表单字段在其旁边显示 !,但不显示关联的 Custom_Error 消息。
我想return自定义错误信息。而且我无法在 children class 中添加该错误。
我如何确定我的 ActionErrors
消息中有哪些错误,以便我可以检查我的自定义错误并 return 它,而不是依赖于 children class?
我已经尝试简单地删除整个 "if" 块并直接 returning 错误,因为它们是从 validateForm
方法收到的,但是当我这样做时,错误消息在页面上显示失败,不知道为什么。
parent 形式应该是 ValidatorForm
的 child 用你的话说,你应该更好地理解。在 parent 的 child 表单中,您应该添加 validate
方法来调用验证。那么在parent实现中你最好在第一条语句调用框架的super方法,然后你可以在框架返回的ActionErrors
中添加错误信息。希望你明白这一点。
public class ErrorForm extends ValidatorForm{
public ActionErrors validateForm(ActionMapping mapping, HttpServletRequest request){
ActionErrors errs= super.validate(mapping, request);
errs.add(ActionErrors.GLOBAL_MESSAGE, new ActionMessage(WebGlobals.CUSTOM_ERROR));
return errs;
}
}