为什么customtag中的pagecontext会导致Null异常

时间:2012-11-09 04:09:31

标签: java jsp jsp-tags custom-tags

我尝试编写有关自定义标记的演示,但这个问题..我讨厌它,我可以自己解决它。

这是我的.TLD文件:

<tag>
    <name>custom</name>
    <tagclass>MyTag.CustomerTag</tagclass>
    <bodycontent>empty</bodycontent>
</tag>

这是我的班级CustomerTag:

public class CustomerTag extends TagSupport {

    private PageContext _pageContext;

    @Override
    public int doStartTag() throws JspException {
        try {
            _pageContext.getOut().println("kakaka"); <-- **here cause exception**
        } catch (IOException ex) {
            JOptionPane.showMessageDialog(null, ex.getMessage());
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, ex.getMessage());
        }
        return SKIP_BODY;
    }

    @Override
    public int doEndTag() throws JspException {
        return SKIP_PAGE;
    }
}

这是我的JSP文件:

<%@taglib uri="/WEB-INF/Marko.tld"  prefix="myTag" %>
<myTag:custom />

请帮助我,谢谢大家

1 个答案:

答案 0 :(得分:1)

在您的代码中,您定义了一个永远不会初始化的单独_pageContext字段;但是,通过扩展TagSupport,您应该可以访问JSP自动为您初始化的字段pageContext

尝试删除变量声明并改为调用pageContext.getOut().println("kakaka");