2009-10-13 100 views
1

有一個內部類,比方說,我想聲明的是有這個Java簽名功能:聲明函數,在簽名

public static String getStatusString(ArticleAndStatus aas) { 
    //... 
} 

ArticleAndStatus是一個內部類的org.example.Outer

我該如何在taglib中聲明它?這些都失敗:

 
    <function> 
     ... 
     <function-signature>java.lang.String 
     getStatusString(org.example.Outer.ArticleAndStatus) 
     ... 
    </function> 
 
    <function> 
     ... 
     <function-signature>java.lang.String 
     getStatusString(org.example.Outer$ArticleAndStatus) 
     ... 
    </function> 
+0

發佈外部定義的代碼,以及如何在其中定義ArticleAndStatus。 只要我看到atm,我懷疑你沒有讓內部類公開? – Chii 2009-10-13 12:30:24

回答

1

我有使用公共靜態內部類同樣的問題。我會說,語法是點。這可能是一個bug在這裏org.apache.jasper.compiler.

+0

分辨率是多少?那個bug是確定的? – predhme 2010-09-17 17:18:03

1

org.example.Outer.ArticleAndStatus

+0

不起作用: org.apache.jasper.JasperException:PWC6300:找不到TLD中函數adverse:getStatusString中方法簽名中指定的類org.example.Outer.ArticleAndStatus。 org.example.Outer.ArticleAndStatus – Artefacto 2009-10-13 11:23:56

+0

最有可能的org.example.Outer.ArticleAndStatus不公開。但是從這個問題來看,沒有太多可以肯定的說。 – Chii 2009-10-13 12:31:32

+0

這是一個公共靜態類。 – Artefacto 2009-10-13 13:41:15

0

你不能只是創建一個虛擬接口,你讓你的內部類實現,並將其作爲方法參數?