JmesaのstateAttrプロパティを使用して、テーブルのさまざまなプロパティを保存します.
1699 ワード
JmesaのstateAttrプロパティを使用して、テーブルのさまざまなプロパティを保存します.
プロジェクトでお客様は、操作が完了して表ページを離れた後、このページに戻ると、以前に離れたときの様子を保存できるようにするように要求しました(ソート、フィルタ、エントリ属性など).
最初は自分でコードを研究して、新しいformを作ってTable Facadeのlimit属性をsessionに保存して、この機能を実現しました.
その後、Jmesa自体にstateAttr属性があり、ステータスを保存するために使用されていると考えられ、wikiには詳細な使用説明があります.
State
The State interface is used to set and retrieve the table Limit. Implementations will set the Limit so that it can be retrieved at a later time. This is useful so a user can return to a specific table with it filtered, sorted, and paged exactly like they left it.
All you have to do is set the stateAttr to the parameter to look for in the url, or the attribute in the request, to tip the table off that the Limit in the users session should be used.
Example
For example in the TableFacade just pass in the name of the parameter to use:
The same goes for using the tags:
As you can see in the following example, by passing in a parameter of "restore=true"then the table is rendered in the same way that you left it. That is really all there is too it!
Note: Just be sure that you have a unique table id for each table that you define. Technically the Limit object for each table is stored in the users session keyed by the table id. If the tables are not unique then you will overwrite one Limit with another.
プロジェクトでお客様は、操作が完了して表ページを離れた後、このページに戻ると、以前に離れたときの様子を保存できるようにするように要求しました(ソート、フィルタ、エントリ属性など).
最初は自分でコードを研究して、新しいformを作ってTable Facadeのlimit属性をsessionに保存して、この機能を実現しました.
その後、Jmesa自体にstateAttr属性があり、ステータスを保存するために使用されていると考えられ、wikiには詳細な使用説明があります.
State
The State interface is used to set and retrieve the table Limit. Implementations will set the Limit so that it can be retrieved at a later time. This is useful so a user can return to a specific table with it filtered, sorted, and paged exactly like they left it.
All you have to do is set the stateAttr to the parameter to look for in the url, or the attribute in the request, to tip the table off that the Limit in the users session should be used.
Example
For example in the TableFacade just pass in the name of the parameter to use:
TableFacade tableFacade =TableFacadeFactory.createTableFacade(id, request);
tableFacade.setStateAttr("restore");
The same goes for using the tags:
<jmesa:tableFacade
id="basic"
stateAttr="restore"
...
>
As you can see in the following example, by passing in a parameter of "restore=true"then the table is rendered in the same way that you left it. That is really all there is too it!
Note: Just be sure that you have a unique table id for each table that you define. Technically the Limit object for each table is stored in the users session keyed by the table id. If the tables are not unique then you will overwrite one Limit with another.