Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите разобраться с передачей параметров в JSP, и с JSTL 
V
    Опции темы
Shklyar
Дата 8.10.2008, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 211
Регистрация: 28.11.2007
Где: Kyiv

Репутация: 1
Всего: 3



Трудности возникли с передачей коллекции. В сервлете:
Код

Collection<String> myCollection = new ArrayList<String>();
myCollection.add("v1");
myCollection.add("v2");
myCollection.add("v3");
request.setAttribute("myCollection", myCollection);
getServletContext().getRequestDispatcher("/test.jsp").
    forward(request, response);
return;

JSP:
Код

<%@ taglib uri = "/WEB-INF/tld/c.tld" prefix="c" %>
<c:forEach items="${myCollection}" var="str">
<c:out value="${str} " escapeXml="false"></c:out>
</c:forEach>

Подскажите где ошибка.
--------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U
PM WWW   Вверх
redrick
Дата 8.10.2008, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 547
Регистрация: 7.1.2004
Где: Москва

Репутация: нет
Всего: 5



эммм, а там ошибка какая или что выводится?


--------------------
Имею Мнение Хрен Оспоришь   
PM MAIL ICQ   Вверх
Samotnik
Дата 8.10.2008, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 5
Всего: 191



Shklyar, не понятно, что за ошибка. Или весь код дайте, или ошибку уточните
Вообще можно еще через итератор
Код

<%
Collection emp=(Collection)request.getAttribute("myCollection");
Iterator itr=emp.iterator();
while(itr.hasNext()) {
      out.println(itr.next().toString());
}
%>

PM MAIL   Вверх
Shklyar
Дата 9.10.2008, 01:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 211
Регистрация: 28.11.2007
Где: Kyiv

Репутация: 1
Всего: 3



Ошибка в результате выполнения программы.
Получаю такой html:
Код


${sp}


Это по примеру из первого поста. Почему так (по части JSTL)?

Попробовал через итератор - как я понял, то itr.hasNext() возвращал false. Видимо что-то в сервлете.

Что еще? Контейнер - Tomcat.

Добавлено через 6 минут и 39 секунд
Одновременно переменную String сервлет передает.
--------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U
PM WWW   Вверх
Samotnik
Дата 9.10.2008, 01:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 5
Всего: 191



Shklyar, а саму ошибку религия запрещает показать ? 
Блин, дай ты стек трейс взглянуть  smile 
PM MAIL   Вверх
Shklyar
Дата 9.10.2008, 01:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 211
Регистрация: 28.11.2007
Где: Kyiv

Репутация: 1
Всего: 3



Так, а самой ошибки нет.

Это сообщение отредактировал(а) Shklyar - 9.10.2008, 01:31
--------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U
PM WWW   Вверх
Samotnik
Дата 9.10.2008, 01:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 5
Всего: 191



Shklyar, Fire Bug  в   Fire Fox  есть ?  Он должен показать, что приходит на страничку
И еще 
перед отправкой данных на страничку напиши  System.out.println(то, что собираешся отправлять)
У меня мысль, что ты  отправляеш  null  smile 
PM MAIL   Вверх
Shklyar
Дата 9.10.2008, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 211
Регистрация: 28.11.2007
Где: Kyiv

Репутация: 1
Всего: 3



1. Смотрим первый пост, JSP: почему, вообще, программа заходит в цикл (результат - в html ${sp})?
2. Через итератор стало работать. Мистика. Вопрос можно считать решенным. Сенкс.
3. Когда нажимаю кнопочку остановки Tomcat (в eclipse, tomcatPlugin), то иногда вижу:
Код

ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2
JDWP exit error AGENT_ERROR_NO_JNI_ENV(183):  [../../../src/share/back/util.c:820]


--------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U
PM WWW   Вверх
Samotnik
Дата 9.10.2008, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 5
Всего: 191



Цитата

1. Смотрим первый пост, JSP: почему, вообще, программа заходит в цикл (результат - в html ${sp})?

А я от куда знаю ?  smile  У  меня же нету всего кода, который я могу продебажить 
Цитата

2. Через итератор стало работать. Мистика. Вопрос можно считать решенным. Сенкс.

Пажалста!  smile  Хотя вообще, итератор не очень хорошее решение, нарушается философфия  MVC т.к.  на  .jsp появляется  java код
Цитата

3. Когда нажимаю кнопочку остановки Tomcat (в eclipse, tomcatPlugin), то иногда вижу:

Ну я и не такое видел  smile  smile  smile  smile 
PM MAIL   Вверх
redrick
Дата 9.10.2008, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 547
Регистрация: 7.1.2004
Где: Москва

Репутация: нет
Всего: 5



Samotnik
да, скриптлеты эта плоха...

Shklyar
вот откуда берется ${sp} вобще не понятно - его даже в твоем коде то и нету....


--------------------
Имею Мнение Хрен Оспоришь   
PM MAIL ICQ   Вверх
Shklyar
Дата 9.10.2008, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 211
Регистрация: 28.11.2007
Где: Kyiv

Репутация: 1
Всего: 3



Весь код страшненький, только учусь.
Это простенькая фотогалерея.
Вот он:
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'>

<web-app>
    <servlet>
        <servlet-name>photogallery</servlet-name>
        <servlet-class>photogallery.Photogallery</servlet-class>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>photogallery</servlet-name>
        <url-pattern>/index</url-pattern>
    </servlet-mapping>
</web-app>

Photogallery.java
Код

package photogallery;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Photogallery extends HttpServlet {
    private static final long serialVersionUID = 1L;
    
    private String photoThumbnailsFilePathname;
    private String thumbnails[];
    
    public void doGet(HttpServletRequest request,
            HttpServletResponse response)
            throws ServletException, IOException {
        photoThumbnailsFilePathname = getServletContext().getRealPath("") +
                File.separator + "images" +
                File.separator + "photo" +
                File.separator + "thumbnails";
        
        thumbnails = (new File(photoThumbnailsFilePathname)).list();
        
        String selectedPhoto = request.getParameter("photo");
        if (selectedPhoto == null || selectedPhoto.length() == 0)
            selectedPhoto = thumbnails[0];
        
        Collection<String> smallPhotos = new ArrayList<String>();
        for (String p: thumbnails) {
            smallPhotos.add(p);
        }
        
        request.setAttribute("bigPhoto", selectedPhoto);
        request.setAttribute("smallPhotos", smallPhotos);
        getServletContext().getRequestDispatcher("/photogallery.jsp").
                forward(request, response);
        return;
    }
}

photogallery.jsp
Код

<%@ page import="java.util.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
    <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1251">
    <TITLE>Photo gallery</TITLE>
    <META NAME="AUTHOR" CONTENT="Oleh Sh.">
    <style>
        img {border-color: #FFF;}
        a {text-decoration: none; color: #888;}
        a img {border-color: #FFF;}
    </style>
</HEAD>
<body style="background: #222;">
<table align="center" border="0" cellspacing="0" cellpadding="4"
    style="text-align: center; font-size: 75%; border-color: #FFF;
    font-family: Verdana, Helvetica, sans-serif; color: #888;">
<tr>
    <td colspan=4><img src="images/photo/<%= request.getAttribute("bigPhoto")
    %>" border="4px" width="700" height="525" alt="">
<br>
<%= request.getAttribute("bigPhoto") %><br><br>
</td>
</tr>
<tr>
<%
int count = 0;
Collection emp=(Collection)request.getAttribute("smallPhotos");
Iterator itr=emp.iterator();
while(itr.hasNext()) {
    String sp = itr.next().toString();
    %><td width="25%"><a href="?photo=<%= sp
    %>"><img src="images/photo/thumbnails/<%= sp
    %>" border="2px" width="133" height="100" alt="<%= sp
    %>"></a></td>
    <%
    if ((++count % 4) == 0)
        out.println("</tr><tr>");
}
while (count % 4 != 0) {
    count++;
    out.println("<td width='25%'> &nbsp; </td>");
}
%></tr>
</table><br>
</body>
</html>

тут добавлял первой строкой
Код

<%@ taglib uri = "/WEB-INF/tld/c.tld" prefix="c" %>

, а там, где итератор
Код

<c:forEach items="${smallPhotos}" var="sp">
<c:out value="${sp} " escapeXml="false"></c:out>
</c:forEach>

Чувствую вопрос о том, что еще сделано, чтоб JSTL работала:
- положил в Tomcat\lib jstl.jar и standard.jar,
- положил в WEB-INF папочку tld (с c.tld, в частности).
--------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U
PM WWW   Вверх
redrick
Дата 9.10.2008, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 547
Регистрация: 7.1.2004
Где: Москва

Репутация: нет
Всего: 5



ну, у тебя не работает JSTL expression ${sp} - проверь что в этой строчке все правильно напечатано


--------------------
Имею Мнение Хрен Оспоришь   
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0836 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.