[英]Xpages - Error calling method 'next()' on java class 'java.util.AbstractList$SimpleListIterator'
[英]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本身實現Map
或DataObject
,則EL將分別使用您在“”后面加上的任何內容來調用get
或getValue
方法。 -您可以使用它來進行假方法調用。
或者,您可以將CacheBean
保持為POJO(不實現這些接口之一),但讓getPCStatus
本身的返回值是Map
或DataObject
,它們將采用您傳入的任何值(在本例中為PCModelBean.status
)並執行查找,並使用#{CacheBean.pCStatus[PCModelBean.status]}
這樣的綁定。 DataObject
的寫法還不錯: https : //frostillic.us/blog/posts/FE0AE00B7CEC4F8885257D46006CAB68
或者,作為所有這些的完整替代方案,如果不需要讀取/寫入綁定,則可以使用SSJS調用該方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.