gpt4 book ai didi

java - 如何检查特定错误的 ActionErrors?

转载 作者:行者123 更新时间:2023-11-30 11:05:04 24 4
gpt4 key购买 nike

我正在为我们的应用程序编写自定义 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;
}
}

不幸的是,我们代码的结构方式(我宁愿不尝试推销“让我们为一个小的改变重构四个类”),ErrorForm 是其他几个类的父类。并且对于除了我在代码片段中显示的原因之外,验证必须在 ErrorForm 类中完成。

当父类终止并将ActionErrors 返回给子类时,子类会添加自己的错误消息,如下所示。

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;
}
}

尽管错误信息是从父类返回的,但是只显示子类的错误信息,永远看不到父类的错误信息。抛出验证错误的表单字段旁边会显示一个 !,但不会显示关联的 Custom_Error 消息。

我想返回自定义错误信息。而且我没有能力在 child 类(class)中添加该错误。

如何确定我的 ActionErrors 消息中有哪些错误,以便我可以检查我的自定义错误并返回它,而不是依赖于子类?

我已经尝试简单地删除整个“if” block 并直接返回从 validateForm 方法接收到的错误,但是当我这样做时,错误消息无法显示在页面,我不知道为什么。

最佳答案

按照您的说法,父表单应该是 ValidatorForm 的子表单,您应该更好地理解这一点。在父级的子窗体中,您应该添加 validate 方法来调用验证。那么在父实现中,最好在第一条语句中调用框架的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;
}
}

关于java - 如何检查特定错误的 ActionErrors?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29775465/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com