我有一大堆的過濾器的模型類:播放2.3:通過控制器傳遞模型數據
@Entity
public class MyModel extends Model
{
String name;
String filterA;
String filterB;
String filterC;
}
基本上我用這個與搜索和搜索結果的頁面。 提交搜索時非常簡單,因爲我只是發佈並使用bindFromRequest()
來獲取所有過濾器。
但我發現它是一個問題,當我想分頁。我希望能夠在用戶選擇頁面時記住這些選定的過濾器。分頁鏈接是GET請求,所以我不能使用bindFromRequest()
。我四處尋找QueryStringBindable
,但我無法理解如何綁定模型。
理想情況下,我不想將每個過濾器都傳遞給分頁鏈接,因爲過濾器的數量可能會不斷變化。
編輯:
一個更好的框架式的問題是,如果我有一個頁面上一堆的過濾器,和我點擊另一個頁面數,如何善用我發送過濾信息下面的頁面,從而使所有的控件可以填充?隨着過濾器數量的增加,傳遞每個過濾器並不是很乾淨。
我認爲不是爲searchdata創建實體,而是在主模型中創建一個內部類,如[Play Sample]中所述(https://github.com/playframework/playframework/blob/2.3.x/samples/ java/computer-database-jpa/app/models/Computer.java)。你也可以處理這些獲取請求。 – silentprogrammer 2015-03-02 17:26:41
我已經看過那個樣本了。我的問題是,Page對象只有幾個過濾器,但我有更多,他們可以繼續增加。我希望有一種方法可以將所有過濾器保存到用戶定義的對象中。就像提交一樣容易。 – nbz 2015-03-02 17:36:08
也許將JSON序列化爲閃存範圍?或會話? – nbz 2015-03-02 17:43:42