Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / jsp <c:out/> как сделать динамический атрибут???? / 22 сообщений из 22, страница 1 из 1
20.04.2012, 11:28:10
    #37762567
gema
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jsp <c:out/> как сделать динамический атрибут????
Мне нужно получить значение с динамическим именем...
<c:forEach var="row2" items="${result2.rows}" varStatus="cur">
Код: java
1.
2.
3.
4.
5.
6.
<c:forEach var="row1" items="${result1.rows}" >
    <c:forEach var="row2" items="${result2.rows}">
          ${row1.dept${row2.id}}
    </c:forEach>

</c:forEach


но так писать нельзя....
Как быть???
...
Рейтинг: 0 / 0
20.04.2012, 11:42:59
    #37762607
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jsp <c:out/> как сделать динамический атрибут????
...
Рейтинг: 0 / 0
20.04.2012, 11:43:14
    #37762608
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jsp <c:out/> как сделать динамический атрибут????
...
Рейтинг: 0 / 0
20.04.2012, 11:54:27
    #37762642
gema
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jsp <c:out/> как сделать динамический атрибут????
Не вижу в списке ничего подходящего...
...
Рейтинг: 0 / 0
20.04.2012, 11:55:53
    #37762648
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jsp <c:out/> как сделать динамический атрибут????
gemaНе вижу в списке ничего подходящего...
Бывает. dept это у вас что?
...
Рейтинг: 0 / 0
20.04.2012, 12:16:02
    #37762690
gema
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jsp <c:out/> как сделать динамический атрибут????
Есть запрос (prod_for_summary), в котором у меня n-е количество колонок с названиями dept1,dept2...И мне нужно вывести значения
по ним в соответствии с текущим (dept).

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
 <c:set var="result1" value="${clc.prod_for_summary}" />
 <c:set var="result2" value="${db.dept}"/>

<c:forEach var="row1" items="${result1.rows}" >
    <c:forEach var="row2" items="${result2.rows}">
          ${row1.dept${row2.id}}
    </c:forEach>

</c:forEach


Вот так вроде более понятно...
...
Рейтинг: 0 / 0
20.04.2012, 12:19:46
    #37762697
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jsp <c:out/> как сделать динамический атрибут????
gemaЕсть запрос (prod_for_summary)
Запрос??? Т.е. JSP у вас оперирует сразу SQL, избегая java код?
Где классы? Какие там объекты в итоге?

gema в котором у меня n-е количество колонок с названиями dept1,dept2...И мне нужно вывести значения
по ним в соответствии с текущим (dept).

Данные хранятся в определенной структуре. Это может быть класс, коллекция, массив. Не зная структуры данных нельзя сказать как правильно к ней обратится через JSP EL.
Например можно положить данные в Map и получать значения по ключу. Такой пример есть в туториале, ссылку на который я привел.


[src JAVA]Вот так вроде более понятно...[/quot]
Не особо.
...
Рейтинг: 0 / 0
20.04.2012, 12:28:29
    #37762715
gema
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jsp <c:out/> как сделать динамический атрибут????
Все делается в бине...Я пыталась покороче описать происходящее, суть вопроса...
...
Рейтинг: 0 / 0
20.04.2012, 12:32:02
    #37762720
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jsp <c:out/> как сделать динамический атрибут????
gemaВсе делается в бине...Я пыталась покороче описать происходящее, суть вопроса...
Покажите бин. Я спросил что такое dept. Вы ответили что это колонки. В бине колонки что ли?
...
Рейтинг: 0 / 0
20.04.2012, 12:32:53
    #37762725
gema
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jsp <c:out/> как сделать динамический атрибут????
Код: java
1.
2.
3.
4.
5.
<jsp:useBean id="clc" class="calc.calc" scope="session"/>
<jsp:setProperty name="clc" property="*"/>

<jsp:useBean id="db" scope="session" class="db.db"/>
<jsp:setProperty name="db" property="*"/>



calc
Код: java
1.
2.
3.
 public Result getHist_sum_prod() {
...
}



db
public Result getHist_sum_prod() {
...
}
...
Рейтинг: 0 / 0
20.04.2012, 12:34:41
    #37762729
gema
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jsp <c:out/> как сделать динамический атрибут????
вот такой запрос
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT s.id , s.firm_id,
s.`prod_id`, s.`output`,
s.`ship_magz_tn`, s.`ship_cons_tn`,
s.`ship_tank_qt`, s.`ship_tank_tn`, 
s.`ship_wagon_qt`, s.`ship_wagon_tn`, 
s.`note`, s.`d_from`, s.`d_to`,sum(IF(dept_id=4,value,0))dept4,sum(IF(dept_id=13,value,0))dept13,
sum(IF(dept_id=1,value,0))dept1,sum(IF(dept_id=5,value,0))dept5,sum(IF(dept_id=15,value,0))dept15,
sum(IF(dept_id=2,value,0))dept2,sum(IF(dept_id=8,value,0))dept8,sum(IF(dept_id=20,value,0))dept20,
sum(IF(dept_id=3,value,0))dept3,sum(IF(dept_id=9,value,0))dept9 FROM output_ship_prod s,move_prod_dept m
where 
s.prod_id=67 and s.firm_id=2 and s.d_from='2012-04-19' and s.d_to='2012-04-19' and m.output_id=s.id
...
Рейтинг: 0 / 0
20.04.2012, 12:47:20
    #37762781
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jsp <c:out/> как сделать динамический атрибут????
1) Вы пробовали ${row1.dept['row2.id']} ? - при условии конечно, что row1.dept - это реализация Map(например HashMap)
2) Если это два объекта - теоретически можно написать кастомную JSTL функцию, принимающую два объекта - row1.dept и row2.id
На странице будет как-то так - <fn:findRow first="${row1.dept}" second="${row2.id}"/> -- В этом месте вызовется статическая функция, с двумя параметрами, внутри нее вы можете написать произвольный java-код и вернуть все что вам надо, но делать так надо только когда по-другому проблему не решить, в вашем случае по-моему можно обойтись легкой кровью.
Как писать кастомные функции - посмотрите в гугле.

П.С. и приведите наконец полную структуру страниц и java-классов
...
Рейтинг: 0 / 0
20.04.2012, 13:05:32
    #37762847
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jsp <c:out/> как сделать динамический атрибут????
gema
Код: java
1.
2.
3.
 public Result getHist_sum_prod() {
...
}



db
public Result getHist_sum_prod() {
...
}
Найдите 10 отличий. И шо оно такое Result?
...
Рейтинг: 0 / 0
20.04.2012, 13:06:12
    #37762850
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jsp <c:out/> как сделать динамический атрибут????
gemaвот такой запрос
JSP берет данные из Java объектов, а не запросов.
...
Рейтинг: 0 / 0
20.04.2012, 17:43:48
    #37763702
gema
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jsp <c:out/> как сделать динамический атрибут????
db.java
Код: java
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.
public Result getDept() {

       PreparedStatement ps = null;
       ResultSet rset = null;
       String query = null;
       Result res = null;
       Connection conn = null;
       try {
           conn = datasource.getConnection();
           query = " SELECT id,sname FROM spr_dept where firm_id=2 and id in(1,2,3,4,5,13,9,8,20,15) order by cast(cod as signed)";
           ps = conn.prepareStatement(query);
           rset = ps.executeQuery();
           res = ResultSupport.toResult(rset);
       } catch (SQLException ex) {
           ex.printStackTrace();
       } finally {
           try {
               if (rset != null) {
                   rset.close();
               }
               if (ps != null) {
                   ps.close();
               }
               if (conn != null) {
                   conn.close();
               }

           } catch (SQLException ex) {
               Logger.getLogger(db.class.getName()).log(Level.SEVERE, null, ex);
           }
           return res;
       }

   }


calc.java
Код: java
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.
public Result getHist_sum_prod() {

       ResultSet rset = null;

       Result res = null;
       String date1 = null;
       Connection conn = null;
       CallableStatement cs = null;
       try {
           conn = datasource.getConnection();
           cs = conn.prepareCall("call output_ship_prod(?,?,?,?)");
           cs.setInt(1, 67);
           cs.setInt(2, 2);
           cs.setDate(3, Date.valueOf("2012-04-19"));
           cs.setDate(4, Date.valueOf("2012-04-19"));
           rset = cs.executeQuery();
           res = ResultSupport.toResult(rset);
       } catch (SQLException ex) {
           ex.printStackTrace();
       } finally {
           try {
               if (rset != null) {
                   rset.close();
               }
               if (cs != null) {
                   cs.close();
               }
               if (conn != null) {
                   conn.close();
               }
           } catch (SQLException ex) {
               Logger.getLogger(calc.class.getName()).log(Level.SEVERE, null, ex);
           }
           return res;
       }

   }


процедура output_ship_prod возвращает результат запроса

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT s.id , s.firm_id,
s.`prod_id`, s.`output`,
s.`ship_magz_tn`, s.`ship_cons_tn`,
s.`ship_tank_qt`, s.`ship_tank_tn`, 
s.`ship_wagon_qt`, s.`ship_wagon_tn`, 
s.`note`, s.`d_from`, s.`d_to`,sum(IF(dept_id=4,value,0))dept4,sum(IF(dept_id=13,value,0))dept13,
sum(IF(dept_id=1,value,0))dept1,sum(IF(dept_id=5,value,0))dept5,sum(IF(dept_id=15,value,0))dept15,
sum(IF(dept_id=2,value,0))dept2,sum(IF(dept_id=8,value,0))dept8,sum(IF(dept_id=20,value,0))dept20,
sum(IF(dept_id=3,value,0))dept3,sum(IF(dept_id=9,value,0))dept9 FROM output_ship_prod s,move_prod_dept m
where 
s.prod_id=67 and s.firm_id=2 and s.d_from='2012-04-19' and s.d_to='2012-04-19' and m.output_id=s.id




aaa.jsp
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<jsp:useBean id="clc" class="calc.calc" scope="session"/>
<jsp:setProperty name="clc" property="*"/>

<jsp:useBean id="db" scope="session" class="db.db"/>
<jsp:setProperty name="db" property="*"/>
.....
<c:set var="result1" value="${clc.prod_for_summary}" />
 <c:set var="result2" value="${db.dept}"/>

<c:forEach var="row1" items="${result1.rows}" >
    <c:forEach var="row2" items="${result2.rows}">
       ${row1.dept${row2.id}}
    </c:forEach>

</c:forEach


Хочу получить: ${row1.dept1},${row1.dept2},${row1.dept3}
...
Рейтинг: 0 / 0
20.04.2012, 17:47:27
    #37763711
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jsp <c:out/> как сделать динамический атрибут????
В JSP контекст едем объект типа Result, ни структура запроса, ни работа с JDBC к рендерингу JSP отношения не имееют.
...
Рейтинг: 0 / 0
20.04.2012, 17:54:32
    #37763734
gema
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jsp <c:out/> как сделать динамический атрибут????
а можно попроще...я не улавливаю смысл написанного...
...
Рейтинг: 0 / 0
20.04.2012, 17:58:16
    #37763746
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jsp <c:out/> как сделать динамический атрибут????
У меня так много есть чего сказать - затык в том, что не знаю с чего начать..начиная от ООП и code conventions и заканчивая MVC пичаль...
...
Рейтинг: 0 / 0
20.04.2012, 18:00:21
    #37763751
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jsp <c:out/> как сделать динамический атрибут????
gemaа можно попроще...я не улавливаю смысл написанного...

В JSP контекст ложится ваш объект Result, доступ к полям можно получить через такой синтаксис ${result.field} - при этом вызовется метод getFiled у вашего Result - ваш код по подключению к базе данных и тп- ничего общего не имеет с рендерингом страницы jsp - так понятнее?
...
Рейтинг: 0 / 0
20.04.2012, 18:02:10
    #37763755
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jsp <c:out/> как сделать динамический атрибут????
забыл никgemaа можно попроще...я не улавливаю смысл написанного...

В JSP контекст ложится ваш объект Result, доступ к полям можно получить через такой синтаксис ${result.field} - при этом вызовется метод getFiled у вашего Result - ваш код по подключению к базе данных и тп- ничего общего не имеет с рендерингом страницы jsp - так понятнее?

Дальше - внутри страницы вы итерируетесь по двум объектам, непонятно связаны они или нет, и лично мне вообще непонятно что вам в итоге увидеть на странице. Приведите код объектов которые вы используете на странице со всеми полями. - чего вы хотите в итоге увидеть, и как они между собой связаны
...
Рейтинг: 0 / 0
20.04.2012, 18:10:19
    #37763769
gema
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jsp <c:out/> как сделать динамический атрибут????
Ошибочка вышла....
Код: java
1.
<c:set var="result1" value="${clc.prod_for_summary}" />



Нужно
Код: java
1.
<c:set var="result1" value="${clc.hist_sum_prod}" />
...
Рейтинг: 0 / 0
20.04.2012, 18:17:43
    #37763780
gema
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jsp <c:out/> как сделать динамический атрибут????
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
 <c:set var="result2" value="${db.dept}"/>
<c:set var="result1" value="${clc.prod_for_summary}" />

<c:forEach var="row1" items="${result1.rows}" >
    <c:forEach var="row2" items="${result2.rows}">
       ${row1.dept${row2.id}}
    </c:forEach>
</c:forEach



${row2.id} возвращает id(1,2,3,4), а в ${result1.rows} есть поля dept1,dept2 и..... то есть dept+${row2.id}
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / jsp <c:out/> как сделать динамический атрибут???? / 22 сообщений из 22, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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