我不認爲使用當前的Jspresso版本(截至目前的4.0.7)很容易實現。的問題是,負責爆炸可比標量屬性成代碼(比較,最小,最大)過濾結構是太深嵌套爲它使用依賴注入來覆蓋:
下面的方法:
protected boolean isPropertyFilterComparable(
IPropertyDescriptor propertyDescriptor) {
return propertyDescriptor instanceof INumberPropertyDescriptor
|| propertyDescriptor instanceof IDatePropertyDescriptor
|| propertyDescriptor instanceof ITimePropertyDescriptor
|| propertyDescriptor instanceof IDurationPropertyDescriptor;
}
位於RefQueryComponentDescriptor
類中,該類的實例在運行時由BasicQueryComponentDescriptorFactory
構建,但採用私有方法(即createOrGetQueryComponentDescriptor
)。因此,即使您可以注入您自己的BasicQueryComponentDescriptorFactory
自定義實例,您也必須複製/粘貼太多的代碼才能訪問isPropertyFilterComparable
方法。
由於您的使用案例是完全有效的,所以我建議您在Jspresso GitHub上創建一個增強請求。
不那麼簡單但更通用的方法可能是打開各種可比較的屬性(數量,日期,時間和持續時間)進行額外的定製,以便告訴Jspresso當這些屬性是否生成時是否生成比較器結構在過濾器視圖中添加。
類似:
date 'validityDate', filterComparable:true
但這需要在SJS DSL的變化。
歡迎來到SO:SE。也許插入快照(可以添加鏈接)或代碼的相關部分會很有用。見[問]。 – mins 2015-04-02 17:02:39