powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / jsp <c:out/> как сделать динамический атрибут????
22 сообщений из 22, страница 1 из 1
jsp <c:out/> как сделать динамический атрибут????
    #37762567
gema
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне нужно получить значение с динамическим именем...
<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
jsp <c:out/> как сделать динамический атрибут????
    #37762607
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
jsp <c:out/> как сделать динамический атрибут????
    #37762608
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
jsp <c:out/> как сделать динамический атрибут????
    #37762642
gema
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не вижу в списке ничего подходящего...
...
Рейтинг: 0 / 0
jsp <c:out/> как сделать динамический атрибут????
    #37762648
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gemaНе вижу в списке ничего подходящего...
Бывает. dept это у вас что?
...
Рейтинг: 0 / 0
jsp <c:out/> как сделать динамический атрибут????
    #37762690
gema
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть запрос (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
jsp <c:out/> как сделать динамический атрибут????
    #37762697
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gemaЕсть запрос (prod_for_summary)
Запрос??? Т.е. JSP у вас оперирует сразу SQL, избегая java код?
Где классы? Какие там объекты в итоге?

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

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


[src JAVA]Вот так вроде более понятно...[/quot]
Не особо.
...
Рейтинг: 0 / 0
jsp <c:out/> как сделать динамический атрибут????
    #37762715
gema
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все делается в бине...Я пыталась покороче описать происходящее, суть вопроса...
...
Рейтинг: 0 / 0
jsp <c:out/> как сделать динамический атрибут????
    #37762720
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gemaВсе делается в бине...Я пыталась покороче описать происходящее, суть вопроса...
Покажите бин. Я спросил что такое dept. Вы ответили что это колонки. В бине колонки что ли?
...
Рейтинг: 0 / 0
jsp <c:out/> как сделать динамический атрибут????
    #37762725
gema
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: 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
jsp <c:out/> как сделать динамический атрибут????
    #37762729
gema
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот такой запрос
Код: 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
jsp <c:out/> как сделать динамический атрибут????
    #37762781
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
jsp <c:out/> как сделать динамический атрибут????
    #37762847
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gema
Код: java
1.
2.
3.
 public Result getHist_sum_prod() {
...
}



db
public Result getHist_sum_prod() {
...
}
Найдите 10 отличий. И шо оно такое Result?
...
Рейтинг: 0 / 0
jsp <c:out/> как сделать динамический атрибут????
    #37762850
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gemaвот такой запрос
JSP берет данные из Java объектов, а не запросов.
...
Рейтинг: 0 / 0
jsp <c:out/> как сделать динамический атрибут????
    #37763702
gema
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
jsp <c:out/> как сделать динамический атрибут????
    #37763711
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В JSP контекст едем объект типа Result, ни структура запроса, ни работа с JDBC к рендерингу JSP отношения не имееют.
...
Рейтинг: 0 / 0
jsp <c:out/> как сделать динамический атрибут????
    #37763734
gema
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а можно попроще...я не улавливаю смысл написанного...
...
Рейтинг: 0 / 0
jsp <c:out/> как сделать динамический атрибут????
    #37763746
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня так много есть чего сказать - затык в том, что не знаю с чего начать..начиная от ООП и code conventions и заканчивая MVC пичаль...
...
Рейтинг: 0 / 0
jsp <c:out/> как сделать динамический атрибут????
    #37763751
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gemaа можно попроще...я не улавливаю смысл написанного...

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

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

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



Нужно
Код: java
1.
<c:set var="result1" value="${clc.hist_sum_prod}" />
...
Рейтинг: 0 / 0
jsp <c:out/> как сделать динамический атрибут????
    #37763780
gema
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: 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
22 сообщений из 22, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / jsp <c:out/> как сделать динамический атрибут????
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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