Xpoint
   [напомнить пароль]

JSTL: не работает <c:out>

2005-08-08 13:24:41 [обр] Даниил Иванов [досье]

Имеем - Tomcat 5.0.28, jstl taglibs 1.1

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<c:set var="test" value="qq7" scope="page"/>
 TEST: <c:out value="${test}"/><br>

Выдает не qq7, а ${test}.

Почему?

спустя 3 дня [обр] Даниил Иванов [досье]
Однако, никто не ответил.
Скажите, это просто у одного меня такая проблема возникла или никто с JSTL не работал? :)
спустя 36 минут [обр] Данбала [досье]
Даниил Иванов[досье]
Я не работал с JSTL, но по правилам синтакса XML надо писать value="{$test}". Может это поможет.
спустя 4 часа 23 минуты [обр] Даниил Иванов [досье]
Данбала[досье]
value="{$test}" тоже не работает. Выводит это самое {$test}.
спустя 17 минут [обр] Данбала [досье]

Посмотрел в томкатских примерах. Там значение переменной выводится непосредственно:

ТЕСТ: ${test}
  1. е. без всяких там c:out. Присваивается же значение в <% ... %>:
<%
String test = "qq7";
%>
ТЕСТ: ${test}

Сам я не пробовал, т. к. нигде не использую JSTL.

спустя 2 дня 22 часа [обр] Даниил Иванов [досье]
Данбала[досье]
Увы, так тоже не работает.
спустя 18 минут [обр] Данбала [досье]
Попробуйте "http://java.sun.com/jsp/jstl/core" в качестве URI.
спустя 1 день [обр] TKV [досье]
Даниил Иванов[досье]web.xml version="2.4", для web.xml 2.3 EL по умолчанию отключены
спустя 19 часов [обр] Даниил Иванов [досье]

Данбала[досье]
Не помогает
TKV[досье]
Это где именно?

В web.xml попробовал изменить
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

на
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.4//EN" "http://java.sun.com/dtd/web-app_2_4.dtd">

В результате JSP вообще перестали грузиться.

спустя 29 минут [обр] Данбала [досье]
Даниил Иванов[досье]
Библиотеки в CLASSPATH присутствуют?
Кажется, standard.jar и jstl.jar
Проверьте, есть ли они в $CATALINA_HOME/common/lib
спустя 50 минут [обр] TKV [досье]

Даниил Иванов[досье]какая IDE? случаем не JBuilder? мне в такой ситуации пришлось вообще грохнуть web module, создать заново и при создании указать servlets 2.4 и jsp 2.0 вуаля и создался web.xml 2.4
возможно это не правильно, за то теперь работает EL :)

а вообще то попробуйте так
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">

спустя 4 часа 4 минуты [обр] Даниил Иванов [досье]

TKV[досье]
А причём тут IDE? Да, JBuilder, но я запускаю из под Томката, который установлен отдельно, а не из под того, который в комплекте с JBuilder поставлялся.

<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"

Не помогло. JSP после этого вообще не запускаются.
Данбала[досье]
Библиотеки в ClassPath присутствуют. Если бы не присутствовали, он ругался бы на сам
тэг c:out.

спустя 1 час 12 минут [обр] Данбала [досье]
Эти tag-lib-ы должны быть прописаны в web.xml. <taglib>, <taglib-uri>, <taglib-location>... Это описано в доках по Tomcat. У вас они прописаны?
спустя 5 часов [обр] Марат Радченко [досье]
А у меня не получается сделать так чтобы jstl не работал :( 2 jar'ины, tld'шки и всё, выводится как надо.
спустя 2 часа 11 минут [обр] TKV [досье]

Даниил Иванов[досье] я тоже запускал из под отдельного томката (джейбилдеровским вообще не пользуюсь)
Даниил Иванов[досье] что вам стоит удалить текущий веб модуль предварительно сделав бэкап? а затем создать новый, обязательно с поддержкой servlets 2.4 и jsp 2.0? уверен на 90% что все заработает как надо. Кстати к слову сказать, поддержку EL можно включить прямо на странице, только не помню как :)

Данбала[досье] Совсем не обязательно

Марат Радченко[досье] А зачем так делать? )

спустя 11 часов [обр] Марат Радченко [досье]
TKV[досье] чтобы воспроизвести ситуацию.
спустя 1 час 23 минуты [обр] Даниил Иванов [досье]
TKV[досье]
Что Вы имеете в виду под
"удалить текущий веб модуль предварительно сделав бэкап? а затем создать новый, обязательно с поддержкой servlets 2.4 и jsp 2.0"?
спустя 26 минут [обр] TKV [досье]
Даниил Иванов[досье] через JBuilder физически сотрите данный веб модуль, предварительно скопировав все что вам нужно в другое место
Далее создайте другой веб модуль и при выборе сервера укажите Tomkat 5 и т.д. далее при выборе возможных стандартов укажите servlets 2.4 и jsp 2.0 и все, переносите ваши файлы обратноd новый веб модуль, кроме естественно web.xml
спустя 2 часа 52 минуты [обр] Даниил Иванов [досье]
TKV[досье]
У меня нет никакого веб-модуля. У меня обычная JSP.
спустя 13 часов [обр] TKV [досье]
Даниил Иванов[досье] ну так создайте! в чем проблема? :)
file->new->web->web module(WAR) либо тогда вот так попробуйте
<%@ page isELIgnored ="false" %>
спустя 5 часов [обр] Даниил Иванов [досье]

TKV[досье]
Вот! Именно сокровенное знание про

<%@ page isELIgnored ="false" %>

мне и нужно было. Оно решило мои проблемы.
Почему то я нигде раньше не находил упоминания про эту волшебную директиву.
Сейчас проверил - в гугле всего 701 страница, где встречается это isELIgnored, при том,
что страниц со словом JSTL аж 270 000.

2 Модератор: наверное, топик в FAQ можно занести.

спустя 48 секунд [обр] Даниил Иванов [досье]

TKV[досье]
Спасибо!

Тему можно закрывать.

спустя 34 минуты [обр] TKV [досье]
Даниил Иванов[досье] По всей видимости эта директива так редко упоминается потому что в web.xml 2.4 EL включены по умолчанию
Powered by POEM™ Engine Copyright © 2002-2005