-1

我最近开始研究 JSP,并且正在阅读有关创建简单标记处理程序以验证自定义标记的教程。我遇到了这个代码片段,当我尝试运行它时,我一遍又一遍地遇到同样的错误。我让我先更改返回类型,然后它告诉我新的返回类型与被覆盖的方法不兼容。问题是,我刚刚从 docs.oracle.com 复制了代码

http://docs.oracle.com/javaee/5/tutorial/doc/bnannan.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[].
4

1 回答 1

1

这部分是无效的,你应该返回一个 ValidationMessage 对象数组:

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

像这样:

return new ValidationMessage[]{new ValidationMessage(data.getId(),
                "Invalid boolean value.")};
于 2014-07-24T11:30:18.053 回答