質問
カスタムタグで複数の属性を使用しようとしています。例:
<mytaglib:mytag firstname="Thadeus" lastname="Jones" />
TagHandlerコードの属性にアクセスするにはどうすればよいですか
解決
あなたの質問に対する答えではありませんが、TagHandlerは嫌いです(つまり、書いたことがない)が、タグファイル。 jspファイルを使用してカスタムタグを記述できます。あなたはおそらくそれらについて知っており、利用可能ではありません/適用されません-しかし、念のためにそれらに言及すると思いました。
他のヒント
パラメーターにアクセスするには、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インターペッターはセッターメソッドが何であるかを推測しようとしています。したがって、パラメーターが&quot; FirstName&quot;の場合、 setメソッドは&quot; setFirstName&quot;でなければなりませんパラメータが&quot; lastname&quot;の場合設定パラメーターは&quot; setlastname&quot;でなければなりません。前者はJavaの標準の命名規則なので、前者に従うことをお勧めします。
この問題の解決策を示すために、類推してみましょう。 &quot; userName&quot;があるとします。および「パスワード」これはindex.jspから取得され、カスタムタグ属性でデータを渡す必要があります。私の場合、その動作
<body>
<%
String name=request.getParameter("name");
String password=request.getParameter("password");
%>
<%@ taglib prefix="c" uri="/WEB-INF/mytag.tld" %>
<c:logintag name="<%=name %>" password="<%=password %>"/>
所属していません StackOverflow