<c:forEach var="row" items="${rs.rows}">
Foo ${row.foo}<br/>
Bar ${row.bar}<br/>
</c:forEach>
</body>
</html>
Запрос в теге <sql:query> выполняется 100% (проверял на Update), но на экран вместо содержимого таблицы выводится Foo ${row.foo}
Bar ${row.bar}
В чем может быть дело?
Спасибо за внимание.
Здравствуйте, okurietz, Вы писали:
O>Здравствуйте, Alexey.M, Вы писали:
O>а что у тебя в web.xml?
В web.xml у меня то, что советуется в Tomcat documentation:
Здравствуйте, Alexey.M, Вы писали:
AM>Здравствуйте, okurietz, Вы писали:
O>>Здравствуйте, Alexey.M, Вы писали:
O>>а что у тебя в web.xml? AM>В web.xml у меня то, что советуется в Tomcat documentation:
AM><web-app> AM> <description>MySQL Test App</description> AM> <resource-ref> AM> <description>DB Connection</description> AM> <res-ref-name>jdbc/TestDB</res-ref-name> AM> <res-type>javax.sql.DataSource</res-type> AM> <res-auth>Container</res-auth> AM> </resource-ref> AM></web-app>
Здравствуйте, cryozot, Вы писали:
C>Это будет работать только если контейнер соответствует спецификации JSP 2.0 (томкат 5, должен). C>В противном случае придётся написать так:
C>
C> Foo <c:out value="${row.foo}"/><br/>
C> Bar <c:out value="${row.bar}"/><br/>
C>
Так я уже писал, результат тот же. Tomcat пятый.
В чем может быть причина ещё?
Здравствуйте, Alexey.M, Вы писали:
AM>Здравствуйте, cryozot, Вы писали:
C>>Это будет работать только если контейнер соответствует спецификации JSP 2.0 (томкат 5, должен). C>>В противном случае придётся написать так:
C>>
C>> Foo <c:out value="${row.foo}"/><br/>
C>> Bar <c:out value="${row.bar}"/><br/>
C>>
AM>Так я уже писал, результат тот же. Tomcat пятый. AM>В чем может быть причина ещё?
Здравствуйте, okurietz, Вы писали:
O>Попробуй в своей jsp написать где-нить ${2+2}
Такие выражения работают.
Мне кажется, что дело в переменной rs. В неё почему-то не записывается результат запроса.
<sql:query var="rs" dataSource="jdbc/TestDB">
В результате выражение ${row.foo} — пустое
<c:forEach var="row" items="${rs.rows}">
Здравствуйте, Alexey.M, Вы писали:
AM>Здравствуйте, okurietz, Вы писали:
O>>Попробуй в своей jsp написать где-нить ${2+2}
AM>Такие выражения работают. AM>Мне кажется, что дело в переменной rs. В неё почему-то не записывается результат запроса. AM><sql:query var="rs" dataSource="jdbc/TestDB"> AM>В результате выражение ${row.foo} — пустое AM><c:forEach var="row" items="${rs.rows}">
AM>Почему так происходит? Или дело в чем-то другом?
Здравствуйте, Alexey.M, Вы писали:
AM><sql:query var="rs" dataSource="jdbc/TestDB"> AM>select id, foo, bar from testdata AM></sql:query>
Вопрос немного не в тему. А почему возникла необходимость обращаться к БД из кода JSP? Это всё-таки отнюдь не best practice... не на PHP же в конце-концов пишем )
Здравствуйте, cryozot, Вы писали:
C>Здравствуйте, Alexey.M, Вы писали:
AM>><sql:query var="rs" dataSource="jdbc/TestDB"> AM>>select id, foo, bar from testdata AM>></sql:query>
C>Вопрос немного не в тему. А почему возникла необходимость обращаться к БД из кода JSP? Это всё-таки отнюдь не best practice... не на PHP же в конце-концов пишем )
думается мне он просто начал изучать Tomcat+JSP. И в доках томката есть такой пример — его он и пытается запустить.
имхо.
C>>Вопрос немного не в тему. А почему возникла необходимость обращаться к БД из кода JSP? Это всё-таки отнюдь не best practice... не на PHP же в конце-концов пишем )
O>думается мне он просто начал изучать Tomcat+JSP. И в доках томката есть такой пример — его он и пытается запустить. O>имхо.
А что тут такого? Пишим Веб приложение и из JSP юзаем базу.
Здравствуйте, Egor, Вы писали:
C>>>Вопрос немного не в тему. А почему возникла необходимость обращаться к БД из кода JSP? Это всё-таки отнюдь не best practice... не на PHP же в конце-концов пишем )
E>А что тут такого? Пишим Веб приложение и из JSP юзаем базу.
А плохого тут то, что мы смешиваем логику предстваления данных и логику доступа к данным, благодаря чему можем огрестись неприятностями, типа создания себе лишней работы.
Например, если потребуется изменить схему данных (например, переименовать поле или разбить одно поле на два), то нам придётся править все обращения к этому полю на всех страничках, где это поле используется. Если же мы каким-то образом абстрагируемся от схемы данных и способа получения этих данных, то жизнь наша будет не столь печальна.
Здравствуйте, cryozot, Вы писали:
C>Здравствуйте, Egor, Вы писали:
C>>>>Вопрос немного не в тему. А почему возникла необходимость обращаться к БД из кода JSP? Это всё-таки отнюдь не best practice... не на PHP же в конце-концов пишем )
E>>А что тут такого? Пишим Веб приложение и из JSP юзаем базу.
C>А плохого тут то, что мы смешиваем логику предстваления данных и логику доступа к данным, благодаря чему можем огрестись неприятностями, типа создания себе лишней работы.
C>Например, если потребуется изменить схему данных (например, переименовать поле или разбить одно поле на два), то нам придётся править все обращения к этому полю на всех страничках, где это поле используется. Если же мы каким-то образом абстрагируемся от схемы данных и способа получения этих данных, то жизнь наша будет не столь печальна.
Вы что хотите сказать что все, кто пишит на JSP (как вы там сказали?) абстрагируемся от схемы данных и способа получения этих данных
Сколько видел исходников — все по одному типу.
Здравствуйте, Egor, Вы писали:
E>Вы что хотите сказать что все, кто пишит на JSP (как вы там сказали?) абстрагируемся от схемы данных и способа получения этих данных
Не уверен, что правильно понял это несвязанное предложение. Мне кажется вы хотели спросить, должны ли все, кто пишет на JSP абстрагироваться от схемы данных и способа получения этих данных. Если так, то отвечаю.
Не должны. Но если они не хотят огрестись дополнительными хлопотами при эволюционировании системы, лучше об этом подумать. Разумеется, если система не должна эволюционировать (например, это туториал), то не должны.
E>Сколько видел исходников — все по одному типу.
А сколько вы видели исходников? И от чего были эти исходники?
Здравствуйте, Blazkowicz, Вы писали:
B>А волшебное слово MVC так и не сказал.
Да побоялся я, что обвинят в кидании понтов ) Отвечать на вопрос надо имхо на языке задающего. Вот если он в ответ спросит где бы чего-нибудь такого из теории почитать, то я уж наговорю всяких волшебных слов )
Здравствуйте, cryozot, Вы писали:
C>Да побоялся я, что обвинят в кидании понтов )
Не боись.
C>Отвечать на вопрос надо имхо на языке задающего.
Ну, знаешь ли, так пост растянется в длинный диалог который никому читать будет не интересно потому что уже не раз этот самый MVC обсуждали.
C>Вот если он в ответ спросит где бы чего-нибудь такого из теории почитать, то я уж наговорю всяких волшебных слов )
А ещё кроме теории можно фреймверков всяких насоветовать. Потому что процесс обучения часто протекает так:
Делаем ерунду. Читаем теорию, делаем по теории, потом находим фреймверк, который эту теорию давно реализовал и в очередной раз расстраиваемся что изобрели велосипед.
Здравствуйте, Blazkowicz, Вы писали:
B>А ещё кроме теории можно фреймверков всяких насоветовать. Потому что процесс обучения часто протекает так: B>Делаем ерунду. Читаем теорию, делаем по теории, потом находим фреймверк, который эту теорию давно реализовал и в очередной раз расстраиваемся что изобрели велосипед.
А потом обычно так: работаем во фреймверке, видим, что фреймверк никуда не годится, изучаем теорию, пишем свой фреймверк, а потом находим другой фреймверк, который делает всё это )))
Здравствуйте, cryozot, Вы писали:
B>>А ещё кроме теории можно фреймверков всяких насоветовать. Потому что процесс обучения часто протекает так: B>>Делаем ерунду. Читаем теорию, делаем по теории, потом находим фреймверк, который эту теорию давно реализовал и в очередной раз расстраиваемся что изобрели велосипед. C>А потом обычно так: работаем во фреймверке, видим, что фреймверк никуда не годится, изучаем теорию, пишем свой фреймверк, а потом находим другой фреймверк, который делает всё это )))
Ну почти так. Только наученые горьким опытом больше не изобретаем велосипедов.
Здравствуйте, Egor, Вы писали:
E>Вы что хотите сказать что все, кто пишит на JSP (как вы там сказали?) абстрагируемся от схемы данных и способа получения этих данных
Именно. Это best practice.
E>Сколько видел исходников — все по одному типу.
Здравствуйте, Blazkowicz, Вы писали:
B>Здравствуйте, cryozot, Вы писали:
B>>>А ещё кроме теории можно фреймверков всяких насоветовать. Потому что процесс обучения часто протекает так: B>>>Делаем ерунду. Читаем теорию, делаем по теории, потом находим фреймверк, который эту теорию давно реализовал и в очередной раз расстраиваемся что изобрели велосипед. C>>А потом обычно так: работаем во фреймверке, видим, что фреймверк никуда не годится, изучаем теорию, пишем свой фреймверк, а потом находим другой фреймверк, который делает всё это )))
B>Ну почти так. Только наученые горьким опытом больше не изобретаем велосипедов.