Java JSP页面上下文空指针
我正在尝试为我的JSP TagLib类构建一个公共类 我有Java JSP页面上下文空指针,java,jsp,inheritance,nullpointerexception,taglib,Java,Jsp,Inheritance,Nullpointerexception,Taglib,我正在尝试为我的JSP TagLib类构建一个公共类 我有 类MyTag扩展了CustomTag { 公共int-doEndTag() { JspWriter out=pageContext.getOut();更改以下代码,然后再试一次: class CustomTag extends BodyTagSupport { public CustomTag() { JspWriter out = super.pageContext.getOut();
类MyTag扩展了CustomTag
{
公共int-doEndTag()
{
JspWriter out=pageContext.getOut();更改以下代码,然后再试一次:
class CustomTag extends BodyTagSupport {
public CustomTag() {
JspWriter out = super.pageContext.getOut();
}
}
在调用doEndTag()
时,第一个类中已设置了pageContext
。在第二个类中,pageContext
尚未设置,因此为null
。这就是导致空指针异常的原因。
有关更多详细信息,请参阅。但父构造函数不是在子构造函数之前调用的吗?我相信该构造函数不是在调用setPageContext()。根据文档:此方法是在doStartTag()之前由JSP页面实现对象调用的
。好的,那么您知道在父类中使用pageContext的其他方法吗?如您所述,您似乎必须在父类(doStartTag()
或doEndTag()
)中创建一个方法,并让子类调用它。有趣的是,它完全起作用了。doStartTag()创建子类的对象时调用父类的。我不知道如何调用,但是nvm。谢谢!
class CustomTag extends BodyTagSupport {
public CustomTag() {
JspWriter out = super.pageContext.getOut();
}
}