2016-07-22 8 views
0

Ich suche nach einer Lösung mit einer benutzerdefinierten Funktion in EL.EL benutzerdefinierte Funktion, wie HashSet <Integer> in <Funktionssignatur> zu deklarieren?

Unten die .tld Datei:

<function> 
    <description> 
     Retourne vrai si l'élement est contenu dans la collection, faux sinon. 
    </description> 
    <name>isIn</name> 
    <function-class>com.plebicom.librairies.ebuyclub.partenaire.Partenaire</function-class> 
    <function-signature> 
     boolean isIn(HashSet<Integer> partenairesExclus, int idPart) 
    </function-signature> 
</function> 

Dann wird die .java- Datei:

public static boolean isIn(HashSet<Integer> partenairesExclus, int idPart) { 

    if(partenairesExclus.contains(idPart)) { 

     return true; 

    } 

    return false; 

} 

Wenn ich versuche, es zu kompilieren, tritt ein Fehler auf:

Das Tag "</Integer>" fehlt .

Also versuche ich > und < statt "<" und ">" zu verwenden. Aber das funktioniert nicht.

Vielleicht weiß jemand eine Lösung, um es zu beheben.

Im voraus, danke!

+0

Nicht sicher, dass Sie UTF-8-Zeichensatz in TLD Definition –

Antwort

0

Funktionssignaturen in Taglib unterstützen Generics nicht an erster Stelle. Sie können es sicher fernhalten.

Ich nehme an, dass Ihr konkretes Problem, für das Sie fälschlicherweise vielleicht dachten, dass die Erklärung des generischen Typs die richtige Lösung wäre, ist, dass die Funktion nicht gefunden werden konnte. Das liegt aber daran, dass Sie Klassen nicht nach FQN (Fully Qualified Name) deklariert haben, also auch das Paket. Mit anderen Worten, Sie müssen HashSet als java.util.HashSet deklarieren und die Argumentnamen weglassen.

Im Folgenden finden Sie die richtige Erklärung:

<function-signature> 
    boolean isIn(java.util.HashSet, int) 
</function-signature> 
+0

Mark Ok ich versuche, dass aber das wird nicht funktionieren:/ – JSFnta

+0

Es funktioniert für mich. Bitte sagen Sie, wie sich Ihr Setup und Ihre Umgebung von den Standardeinstellungen und den derzeit verfügbaren Versionen unterscheiden. – BalusC

+0

'[EBC] - 2016-07-22 14: 33: 44,128 FEHLER ActionBeanSupport: 108 - org.apache.jasper.JasperException: Die in der Methodensignatur in TLD für die Funktion fnc: isIn angegebene Klasse java.util.HashSet partenairesExclus kann nicht gefunden werden. Und ich denke, meine Umgebung ist die Standardumgebung. – JSFnta

Verwandte Themen