所以,我想弄清楚如何使用JSTL和頂級域名與JSP中的Java函數進行交互。這種特殊的功能沒有回報,所以我假設我需要將其與EL電話呼叫在JSP直線上升:頂級域名中沒有返回的Java函數
<html code here>
${prefix:createChildPage(currentPage, resourceResolver, strings, string)}
<other jstl code here>
<more html here>
但我無法弄清楚如何建立正確的TLD爲這個。 Java函數如下所示:
public static void createChildPage(Page page, ResourceResolver resourceResolver, String[] strings, String string) throws Exception {
// code in here
}
正如您所看到的,沒有任何回報。該功能只需輸入參數,並使用這些參數在Adobe CQ/AEM環境內使用JCR/Oak節點結構構建子頁面結構。所以,我試圖設置這樣的TLD功能,並且一直告訴我該方法在我的課程中不存在。
<function>
<name>createChildPage</name>
<function-class>com.org.utils.ClassName</function-class>
<function-signature>createChildPage(com.day.cq.wcm.api.Page, org.apache.sling.api.resource.ResourceResolver, java.lang.String, java.lang.String)</function-signature>
</function>
起初,我想這可能是因爲我不知道如何對頂級域名(TLD)的String []進行分類。但我已經嘗試了這麼多類,結果相同,我相當肯定它可能與我沒有指定返回的事實有關。對於上面的示例代碼,我將String []分類爲java.lang.String,但也許它應該是java.util.Array。我已經把頭撞到了牆上,現在還不能確定。我假設我需要TLD函數,因爲我必須從JSP調用一些方法(因此,${prefix:
部分代碼。
所以我的問題是這樣的:我該如何調用?使用JSTL/EL從JSP Java函數不具有返回它只是在頁面加載的東西
我已經考慮過了。但據我所知,它不符合良好的編碼習慣。這是針對企業項目的,所以我想確保我交出的代碼儘可能乾淨。不過,我想我可以用這種方法來確認問題是否是缺乏回報。 – Tyrelius