|
|
|
Непонятки в JFS с h:dataTable
|
|||
|---|---|---|---|
|
#18+
Есть пример использования h:dataTable: http://www.mkyong.com/jsf2/jsf-2-datatable-example/ В примере шаблон выглядит: Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. Для заполнения h:dataTable дергается order.orderList. Пример отрабатывается нормально. Вывод данных есть. Вопрос в следующем. Судя по логам, order.orderList дергается 3(!) раза. Не могу понять зачем и почему это происходит. Какой смысл в этом? Может кто-нибудь сталкивался с этой проблемой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2012, 09:27:47 |
|
||
|
Непонятки в JFS с h:dataTable
|
|||
|---|---|---|---|
|
#18+
Это стандартное поведение, читайте про lifecycle jsf. После того как прочитаете - поставьте брейкпоинт на геттер и убедитесь лично как оно все работает:) Что касается оптимизации - стандартный подход такой - private List<?> data public List<?> getData(){ if(data == null){ data = //populate.. } return data; } Таким образом геттер реально отработает 3 раза, а обращение в базу будет всего одно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2012, 12:04:27 |
|
||
|
Непонятки в JFS с h:dataTable
|
|||
|---|---|---|---|
|
#18+
забыл никЭто стандартное поведение, читайте про lifecycle jsf. После того как прочитаете - поставьте брейкпоинт на геттер и убедитесь лично как оно все работает:) Что касается оптимизации - стандартный подход такой - private List<?> data public List<?> getData(){ if(data == null){ data = //populate.. } return data; } Таким образом геттер реально отработает 3 раза, а обращение в базу будет всего одно Спасибо. Решение с кешированием, первое что пришло в голову. Но я думал, что такое решение в этом конкретном случае будет извращением. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2012, 12:22:44 |
|
||
|
Непонятки в JFS с h:dataTable
|
|||
|---|---|---|---|
|
#18+
stateistatзабыл никЭто стандартное поведение, читайте про lifecycle jsf. После того как прочитаете - поставьте брейкпоинт на геттер и убедитесь лично как оно все работает:) Что касается оптимизации - стандартный подход такой - private List<?> data public List<?> getData(){ if(data == null){ data = //populate.. } return data; } Таким образом геттер реально отработает 3 раза, а обращение в базу будет всего одно Спасибо. Решение с кешированием, первое что пришло в голову. Но я думал, что такое решение в этом конкретном случае будет извращением. :) JSF само по себе извращение еще то:) На самом деле скоро привыкнете, вызов гттера много раз не самое интересное что вас ждет:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2012, 16:48:08 |
|
||
|
|

start [/forum/topic.php?fid=59&tid=2131649]: |
0ms |
get settings: |
17ms |
get forum list: |
23ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
| others: | 312ms |
| total: | 445ms |

| 0 / 0 |
