1

私が持っている JSP TagLib クラスの共通クラスを構築しようとしています。

class MyTag extends CustomTag
{
   public int doEndTag()
   {
      JspWriter out = pageContext.getOut(); <-- this one works fine
   }
}
class CustomTag extends BodyTagSupport
{
   public CustomTag()
   {
      JspWriter out = pageContext.getOut(); <-- this one throws me a Nullpointer
   }
}

私は何を間違っていますか?

親に追加のメソッドを作成し、それを doEndTag() から子から呼び出すこともできますが、コンストラクターを使用する方がはるかに優れています。

4

2 に答える 2

2

最初のクラスでdoEndTag()は、呼び出されるまでに、pageContextが設定されています。2 番目のクラスでpageContextは、 が設定されていないため、 ですnull。それがヌルポインタ例外の原因です。
詳しくはこちらをご覧ください。

于 2012-04-19T18:30:24.393 に答える
0

以下のコードに変更して、さらに試してみてください。

class CustomTag extends BodyTagSupport {    
      public CustomTag()    {
           JspWriter out = super.pageContext.getOut(); 
      } 
} 
于 2012-04-19T18:25:31.583 に答える