Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Непонятки в JFS с h:dataTable / 5 сообщений из 5, страница 1 из 1
01.06.2012, 09:27:47
    #37820867
stateistat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятки в JFS с h:dataTable
Есть пример использования 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.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"   
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      >
    <h:head>
    	<h:outputStylesheet library="css" name="table-style.css"  />
    </h:head>
    <h:body>
 
    	<h1>JSF 2 dataTable example</h1>
 
    		<h:dataTable value="#{order.orderList}" var="o"
    			styleClass="order-table"
    			headerClass="order-table-header"
    			rowClasses="order-table-odd-row,order-table-even-row"
    		>
 
    			<h:column>
    				<!-- column header -->
    				<f:facet name="header">Order No</f:facet>
    				<!-- row record -->
    				#{o.orderNo}
    			</h:column>
 
    			<h:column>
    				<f:facet name="header">Product Name</f:facet>
    				#{o.productName}
    			</h:column>
 
    			<h:column>
    				<f:facet name="header">Price</f:facet>
    				#{o.price}
    			</h:column>
 
    			<h:column>
    				<f:facet name="header">Quantity</f:facet>
    				#{o.qty}
    			</h:column>
 
    		</h:dataTable>
 
    </h:body>
</html>


Для заполнения h:dataTable дергается order.orderList. Пример отрабатывается нормально. Вывод данных есть.
Вопрос в следующем. Судя по логам, order.orderList дергается 3(!) раза. Не могу понять зачем и почему это происходит. Какой смысл в этом?
Может кто-нибудь сталкивался с этой проблемой.
...
Рейтинг: 0 / 0
01.06.2012, 12:04:27
    #37821196
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятки в JFS с h:dataTable
Это стандартное поведение, читайте про lifecycle jsf. После того как прочитаете - поставьте брейкпоинт на геттер и убедитесь лично как оно все работает:)
Что касается оптимизации - стандартный подход такой -

private List<?> data
public List<?> getData(){
if(data == null){
data = //populate..
}
return data;
}

Таким образом геттер реально отработает 3 раза, а обращение в базу будет всего одно
...
Рейтинг: 0 / 0
01.06.2012, 12:22:44
    #37821276
stateistat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятки в JFS с h:dataTable
забыл никЭто стандартное поведение, читайте про lifecycle jsf. После того как прочитаете - поставьте брейкпоинт на геттер и убедитесь лично как оно все работает:)
Что касается оптимизации - стандартный подход такой -

private List<?> data
public List<?> getData(){
if(data == null){
data = //populate..
}
return data;
}

Таким образом геттер реально отработает 3 раза, а обращение в базу будет всего одно
Спасибо. Решение с кешированием, первое что пришло в голову. Но я думал, что такое решение в этом конкретном случае будет извращением. :)
...
Рейтинг: 0 / 0
01.06.2012, 16:48:08
    #37821858
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятки в JFS с h:dataTable
stateistatзабыл никЭто стандартное поведение, читайте про lifecycle jsf. После того как прочитаете - поставьте брейкпоинт на геттер и убедитесь лично как оно все работает:)
Что касается оптимизации - стандартный подход такой -

private List<?> data
public List<?> getData(){
if(data == null){
data = //populate..
}
return data;
}

Таким образом геттер реально отработает 3 раза, а обращение в базу будет всего одно
Спасибо. Решение с кешированием, первое что пришло в голову. Но я думал, что такое решение в этом конкретном случае будет извращением. :)

JSF само по себе извращение еще то:) На самом деле скоро привыкнете, вызов гттера много раз не самое интересное что вас ждет:)
...
Рейтинг: 0 / 0
04.06.2012, 12:10:47
    #37823965
stateistat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятки в JFS с h:dataTable
забыл никJSF само по себе извращение еще то:) На самом деле скоро привыкнете, вызов гттера много раз не самое интересное что вас ждет:)
Спасибо, добрый человек, за поддержку. :)
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Непонятки в JFS с h:dataTable / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]