2014-01-17 67 views
2

我正在使用www.datatables.net。 JS框架在表格中顯示數據。它具有服務器模式,並在此模式下發送大量參數。配置要分配給bean域的動作的請求參數

示例:sortColumn,sortType(asc,desc),過濾值,pagenum,itemsonpage等等。

所以我處理它的行動。我分配給每個請求參數字段的行動,它工作正常。

但現在我有幾個表。所以我必須做出不同的行動,但要求相同的參數,並有很多。將粘貼代碼從一個操作複製到另一個操作並不是一個好主意。

因此,我確實實施了一個DatatableParamBean,其中包含正常工作所需的所有參數。

問題是PARAMS發送這樣iSortColumniDisplayTotalLength,在 iTotalItems等等,但我需要他們被分配到豆田。

bean.iSortColumn, bean.iDisplayTotalLength and so on. 

請考慮DatatableParamBean在我的操作類中引用了'bean';

如果有一種方法可以覆蓋分配請求參數值的默認機制嗎? 唯一能做的我發現,現在是從DatatableAction

+0

不,ognl應該處理這些參數。 –

+0

感謝您清除此問題。 – simar

回答

1

創建一個動作說DatatableAction類這一切PARAMS,如果我需要處理dataatble創建一個新的動作,使用擴展這是關聯或聚集一個bean通常的方式行動課。動作類屬性可以直接使用具有屬性訪問器的名稱。可以通過OGNL通過指定合適的OGNL表達式來訪問嵌套的Bean屬性,這是對屬性的路徑。假設所有屬性訪問器都沒有null對bean的引用。這可以通過提供相應的getter和setter來實現,並在必要時初始化bean引用。因此,bean.iSortColumn,bean.iDisplayTotalLength是有效的OGNL表達式,用於設置/獲取bean屬性。但是你需要在動作中初始化它。像這樣

private Bean bean = new Bean(); 

public Bean getBean() { return bean; } 

參考文獻:

  • 要熟悉OGNL是如何工作的,你可以在閱讀OGNL Basics
  • 基準OGNL參考文獻包含OGNL語言指南的鏈接。
+0

實際問題出在另一邊。我成功實施了使用行動領域作爲參數,問題是,我無法改變來自js框架的參數,但現在我確實已經做到了。 datatable具有特殊的功能來覆蓋參數名稱。 – simar

+0

您可以使用兩個附加選項:1)您可以實現'ModelDriven '; 2)使用'alias'攔截器。 –