Программирование простых обработчиков тегов в JSP

Недавно я начал работать над JSP и проходил учебные курсы по созданию простых обработчиков тегов для проверки пользовательских тегов. Я наткнулся на этот фрагмент кода, и когда я пытался запустить его, я снова и снова получал одну и ту же ошибку. Я прошу меня сначала изменить тип возвращаемого значения, а затем он сообщает, что новый возвращаемый тип несовместим с переопределяемым методом. Дело в том, что я только что скопировал код с docs.oracle.com

http://docs.oracle.com/javaee/5/tutorial/doc/bnann.html

Кто-нибудь может сказать, что здесь не так?

РЕДАКТИРОВАТЬ: я теперь добавил импорт и сообщение об ошибке.

import javax.servlet.jsp.tagext.TagData;
import javax.servlet.jsp.tagext.TagExtraInfo;
import javax.servlet.jsp.tagext.ValidationMessage;

public class TwaTEI extends TagExtraInfo {
    public ValidationMessage[] validate(TagData data) {
        Object o = data.getAttribute("attr1");
        if (o != null && o != TagData.REQUEST_TIME_VALUE) {
            if (((String)o).toLowerCase().equals("true") ||
                 ((String)o).toLowerCase().equals("false") )
                 return null;
            else
                return new ValidationMessage(data.getId(),
                    "Invalid boolean value.");
        }
        else
            return null;
    }
}

ОШИБКА

Type mismatch: cannot convert from ValidationMessage to ValidationMessage[].

1 ответ

Решение

Эта часть недействительна, вы должны вернуть массив объектов ValidationMessage:

return new ValidationMessage(data.getId(),
                "Invalid boolean value.");

Как это:

return new ValidationMessage[]{new ValidationMessage(data.getId(),
                "Invalid boolean value.")};
Другие вопросы по тегам