2016-07-22 9 views
0

EL에서 사용자 지정 기능이있는 솔루션을 찾고 있습니다. 다음은EL 사용자 정의 함수, <function-signature>에 HashSet <Integer>을 선언하는 방법은 무엇입니까?

.TLD 파일 : 다음

<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> 

된 .java 파일 :

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

    if(partenairesExclus.contains(idPart)) { 

     return true; 

    } 

    return false; 

} 

나는 그것을 컴파일하려고 오류가 발생합니다

태그 "</정수>"가 없습니다. .

그래서 내가 대신 "<"와 ">"의 > 및 <를 사용하려고합니다. 하지만 그건 효과가 없습니다.

어쩌면 누군가가 해결책을 알고있을 것입니다.

미리 감사드립니다.

+0

당신이 TLD 정의 –

답변

0

taglib의 함수 서명은 제네릭을 처음부터 지원하지 않습니다. 당신은 그것을 안전하게 지킬 수 있습니다.

제네릭 형식을 선언하는 것이 올바른 해결 방법이라고 잘못 생각한 구체적 문제는 함수를 찾을 수 없다는 것입니다. 그러나 이것은 패키지를 포함하여 FQN (Fully Qualified Name)으로 클래스를 선언하지 않았기 때문에 실제로 발생합니다. 즉, HashSetjava.util.HashSet으로 선언하고 인수 이름을 생략해야합니다.

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

에 UTF-8 문자셋을 지정하지 있는지 확인 나는 그것을 시도하지만 너무 작동하지 않습니다 :/ – JSFnta

+0

그것은 나를 위해 작동

다음은 올바른 선언입니다. 기본 설정 및 현재 사용 가능한 버전과 설치 및 환경이 어떻게 다른지 알려주십시오. – BalusC

+0

'[EBC] - 2016-07-22 14 : 33 : 44,128 ERROR ActionBeanSupport : 108 - org.apache.jasper.JasperException : 함수 fnc : isIn에 대한 TLD의 메소드 서명에 지정된 클래스 java.util.HashSet partenairesExclus 내 환경이 기본 환경이라고 생각한다. – JSFnta