【问题标题】:Programming Simple Tag Handlers in JSP在 JSP 中编写简单的标记处理程序
【发布时间】:2014-07-24 10:18:56
【问题描述】:

我最近开始研究 JSP,我正在阅读有关创建简单标签处理程序以验证自定义标签的教程。我遇到了这段代码 sn-p,当我尝试运行它时,我一遍又一遍地遇到同样的错误。我让我先更改返回类型,然后它告诉我新的返回类型与被覆盖的方法不兼容。 问题是,我只是从 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[].

【问题讨论】:

  • 导入是这里的关键部分,但您没有发布它们。而且您也没有发布从编译器获得的准确完整的错误消息。

标签: jsp jakarta-ee tags tag-handler


【解决方案1】:

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

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

像这样:

return new ValidationMessage[]{new ValidationMessage(data.getId(),
                "Invalid boolean value.")};

【讨论】:

    猜你喜欢
    • 2016-07-26
    • 2013-08-01
    • 1970-01-01
    • 2017-04-16
    • 1970-01-01
    • 2012-09-12
    • 1970-01-01
    • 2010-10-21
    • 1970-01-01
    相关资源
    最近更新 更多