Cuby: Шадик
18 Октября 2018, 05:22:23 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Расширен список контрагентов. Следствием будет повышение качества выполняемых работ.
 
   Начало   Помощь Поиск Календарь Войти Регистрация  

Модернизация КТФ-7 до ЧПУ - контроллер управления G-CODE

Страниц: [1]   Вниз
  Печать  
Автор Тема: JSTL использование переменных  (Прочитано 4691 раз)
walery
штиль
Ветеран
**
Сообщений: 3619


модернизаация КТФ-7 до ЧПУ


WWW
« : 26 Марта 2009, 17:17:33 »

Hi. Подскажите, почему в приведённом примере выводится разное значение переменной user?
Код:
<body>
<%! String i="qewr"; String user="gdfd"; %>

<c:set var="user" scope="page" value="asd"></c:set>

<h1>Test 1 <c:out  value="${user}"/> </h1>

<h1>Test2 <%=user %></h1>


</body>
Записан
wivern
Модератор
Ветеран
*****
Сообщений: 1539



« Ответ #1 : 26 Марта 2009, 17:47:03 »

Hi. Подскажите, почему в приведённом примере выводится разное значение переменной user?
Код:
<body>
<%! String i="qewr"; String user="gdfd"; %>

<c:set var="user" scope="page" value="asd"></c:set>

<h1>Test 1 <c:out  value="${user}"/> </h1>

<h1>Test2 <%=user %></h1>
</body>
Потому что скриптлет и теги jstl не одно и то же.
Скриптлет создает локальную переменную и присваивает ей значение, которое позднее выводится другим скриптлетом.
А тег c:set помещает переменную user в контекст страницы. Точнее говоря, это даже не переменная а атрибут страницы. При обработке запроса контейнер создает специальный объект под названием pageContext, в котором хранится ассоциативный массив типа Map. В него заносится ключ "user" и значение "asd".
Ответил?
http://www.ibm.com/developerworks/java/library/j-jstl0211.html
Записан
walery
штиль
Ветеран
**
Сообщений: 3619


модернизаация КТФ-7 до ЧПУ


WWW
« Ответ #2 : 30 Марта 2009, 11:03:07 »

Да, спасибо. Я это спрашиваю применительно к springframework.
Некий контроллер, например, заканчивается кодом
Цитировать
... return new ModelAndView("view","model",model);

Тогда в JSP можно написать
Цитировать
<c:out value="${model}"/>
и всё произойдёт. А средствами скриптлета это будет работать например в таком варианте
Цитировать
<%=model %>
?
Записан
wivern
Модератор
Ветеран
*****
Сообщений: 1539



« Ответ #3 : 30 Марта 2009, 12:18:27 »

В таком варианте не будет.
Вообще скриптлеты, как бы это сказать, не стоит использовать.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Модернизация КТФ-7 до ЧПУ - контроллер управления G-CODE

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines Valid XHTML 1.0! Valid CSS!

Bad Behavior has blocked 7324 access attempts in the last 7 days.