0

カスタムタグについてのデモをコーディングしようとしていますが、この問題は..嫌いです。自分で解決できます。

これが私の.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 />

助けてください、みんなありがとう

4

1 に答える 1

1

_pageContextコードでは、初期化しない別のフィールドを定義しています。ただし、拡張することにより、JSPが自動的に初期化TagSupportするフィールドにアクセスできるようになります。pageContext

変数宣言を削除して、pageContext.getOut().println("kakaka");代わりに呼び出してみてください。

于 2012-11-09T04:50:40.660 に答える