簡體   English   中英

Xpages:在EL中的CacheBean中調用Java方法時出錯

[英]Xpages: Error calling java method in a CacheBean in EL

我的Xpages應用程序具有用於應用程序范圍設置的cacheBean。 我有一個PC文檔的托管Bean,其狀態狀態為整數。

在cacheBean中,我有一個方法getPCStatus(Integer status),當給定數字時,該方法將返回狀態的字符串文本。

在我的Xpage上,我有一個文本字段,我想綁定到

cacheBean.getPCStatus(PCBean.status)

因此它將為1返回“庫存”,為2返回其他。

但是,代碼拋出錯誤。

這是代碼:

readonly="true">
<xp:this.value><![CDATA[#{CacheBean.getPCStatus(PCModelBean.status)}]]></xp:this.value>
</xp:inputText>

錯誤是

EL語法錯誤,屬性“值”:CacheBean.getPCStatus(PCModelBean.status)

我知道我很早以前就讀過一些東西,但是不記得如何處理,但是找不到它。

我想知道方法getPCStatus應該在PCBean中還是在cacheBean中?

在XPages中使用的EL版本不支持帶有參數的調用方法。 如果getPCStatus()是零參數方法,則可以使用#{CacheBean.pCStatus}來調用它,大概是這樣,但這是您所需要的參數。

有幾種常見的解決方法:如果CacheBean本身實現MapDataObject ,則EL將分別使用您在“”后面加上的任何內容來調用getgetValue方法。 -您可以使用它來進行假方法調用。

或者,您可以將CacheBean保持為POJO(不實現這些接口之一),但讓getPCStatus本身的返回值是MapDataObject ,它們將采用您傳入的任何值(在本例中為PCModelBean.status )並執行查找,並使用#{CacheBean.pCStatus[PCModelBean.status]}這樣的綁定。 DataObject的寫法還不錯: https : //frostillic.us/blog/posts/FE0AE00B7CEC4F8885257D46006CAB68

或者,作為所有這些的完整替代方案,如果不需要讀取/寫入綁定,則可以使用SSJS調用該方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM