2

カスタム タグで複数の属性を使用しようとしています。

<mytaglib:mytag firstname="Thadeus" lastname="Jones" />

TagHandler コードの属性にアクセスするにはどうすればよいですか?

4

3 に答える 3

4

パラメータにアクセスするには、TagHandler クラスでプライベート メンバーを定義し、アクセサ メソッドを提供する必要があります。

public class TagHandler extends TagSupport {
    private String firstName;
    private String lastName;

    public void setFirstName(String firstname) { firstName = firstname; }
    public void setLastName(String lastname) { lastName = lastname;}
}

その後、TagHandler 変数を介してパラメーターにアクセスできます。

public int doStartTag() throws JspException {
    pageContext.getOut().print(lastName + ", " + firstName);
}

それでも問題が解決しない場合は、命名規則を再確認してください。Java インターピーターは、setter メソッドが何であるかを推測しようとしています。したがって、パラメーターが「FirstName」の場合、set メソッドは「setFirstName」である必要があり、パラメーターが「lastname」の場合、set パラメーターは「setlastname」である必要があります。標準の Java 命名規則であるため、前者に従うことをお勧めします。

于 2008-10-22T06:41:51.380 に答える
0

あなたが尋ねたことへの答えではありませんが、私は TagHandler が嫌いです (つまり、書いたことはありません) が、tag filesは大好きです。jsp ファイルを使用してカスタム タグを記述できます。あなたはおそらくそれらについて知っていて、利用可能/適用可能ではありませんが、念のため言及したいと思いました.

于 2008-10-22T06:21:52.573 に答える