単純に実装された tld 関数を使用したいのですが、MyAccessManager は抽象クラスであり、2 つの子が関数を異なる方法でオーバーライドしています。
public static <T extends MyAccessManager> boolean isAllowed(T accessMan, MyTypeEnum otherUsersEnum){
// trivial implementation
}
上記のメソッドは、tld 定義ファイル (*.tld) でも定義しました。
MyAccessManager を拡張する 2 つのクラスがあり、次のような EL 経由で関数を使用しています。
<input name="foo" type="hidden" value="${mytaglib:isAllowed(param1, param2)}"/>
正しいパラメーター (つまり、子クラスのインスタンスを param1 として) を tld 関数に渡しますが、webapp は以下の例外をスローします。
org.apache.jasper.JasperException: PWC6300: 関数 mytaglib:isAllowed の TLD のメソッド シグネチャで指定されたクラス T が見つかりません。T
私のtldファイル:
<function>
<description>Processes users access to specific resources</description>
<name>isAllowed</name>
<function-class>com.myproj.MyUtil</function-class>
<function-signature>boolean isAllowed(T,com.myproj.MyTypeEnum)</function-signature>
</function>
TLD は Java の型パラメータをサポートしていませんか? または、そのような機能を実装する方法はありますか?