Я пишу пользовательское сообщение ActionErrors
для нашего приложения, чтобы отобразить конкретную ошибку при определенных обстоятельствах.Как проверить 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 не отображается.
Я хочу вернуть пользовательское сообщение об ошибке. И у меня нет возможности просто добавить эту ошибку в класс children.
Как определить, какие ошибки в моем сообщении ActionErrors
, чтобы я мог проверить свою пользовательскую ошибку и вернуть ее, а не в зависимости от класса children?
Я уже пробовал просто удалять весь блок «if» и возвращать ошибки напрямую, поскольку они получены из метода validateForm
, но когда я это делаю, сообщение об ошибке не отображается на странице, и я не делаю знаю, почему.
Не могли бы вы объяснить немного подробнее * при валидации возвращается к тем формам, ... * –
@RomanC Я добавил еще несколько деталей, которые, надеюсь, прояснит, что я говорю - я m, ссылаясь на то, что класс Child вызывает метод из родительского класса, который должен возвращать ActionErrors родительского класса, но никогда не отображает Custom_Message родительского класса при выдаче ошибки проверки. – Zibbobz