Одесса: 1°С (вода 8°С)
Киев: 0°С
Львов: -3°С

Тема: Java, Struts, Custom tags... Need Help

Ответить в теме
Показано с 1 по 9 из 9
  1. Вверх #1

    Question Java, Struts, Custom tags... Need Help

    помогите разобраться с использованием
    тега <logic:iterate > (это тот который идёт в струтс)
    или с его аналогом <c:forEach> (JSTL)

    вот кусок моей jsp страницы

    <jsp:useBean id="BeanAction1" scope="session" class="untitled14.beanExample"/>
    <BR>
    <logic:iterate id="BeanAction2"
    name="BeanAction1"
    type="untitled14.beanExample"
    property="list">
    <br>чего-то там. для проверки
    </logic:iterate>

    кусок untitled14.beanExample
    private String[] list = {"один 1 ","два 2 ","три 3 ","четыре 4 ","пять 5 "};
    public String[] getList() {
    return list; }

    или как альтернатива, ошибка та же
    private Collection list = new ArrayList(10);
    public Collection getList() {
    list.add("1");list.add("2");list.add("3");list.add ("4");
    return list; }

    выкидывает java.lang.ClassCastException
    походу кривизна где-то в jsp.
    Походу надо обрабатывать данные из бина, который иннициализируется непосредственно в jsp.


  2. Вверх #2
    Не покидает форум Аватар для napTu3aH
    Пол
    Мужской
    Сообщений
    14,135
    Репутация
    4673
    В action-классе в request или сессию кидай этот list :
    Collection list = new beanExample().getList();
    request.setAttribute("list", list);

    и уже в самой странице обрабатывай библиотекой JSTL :

    <c:forEach var="item" items="${list}" >
    <c:out value="${item}" />
    </c:forEach>

    P.S. кстати
    beanExample - имя класса не соответствует стандартам > BeanExample.
    Да и в массивах хранит не советую ... всё таки это статический тип хранения данных. Используй коллекции.
    Последний раз редактировалось napTu3aH; 28.12.2006 в 11:27.

  3. Вверх #3
    а без Action никак нельзя? и если можно пример использования коллекции.

  4. Вверх #4
    Не покидает форум Аватар для napTu3aH
    Пол
    Мужской
    Сообщений
    14,135
    Репутация
    4673
    Цитата Сообщение от shipr
    а без Action никак нельзя? и если можно пример использования коллекции.
    без action можно ...
    да вот только любую логику всё-таки лучше выносить за пределы страниц представления, на то он и MVC.

    По поводу коллекций
    Collection list = new beanExample().getList();
    и есть пример такой коллекции.

    Классы коллекций строятся на основе семи интерфейсов : Collection (прородитель коллекций), Set, SortedSet, List, Map, SortedMap,Queue.

    Классы коллекций:
    Maps - HashMap, Hashtable, TreeMap, LinkedHashMap
    Sets - HashSet, LinkedHashSet, TreeSet
    Lists - ArrayList, Vector, LinkedList
    Queues - PriorityQueue.

    Класс утилит для работы с коллекциями - Collections

    Более подробно по этим классам и интерфейсам смотри в API документации к JDK.

  5. Вверх #5
    Ура заработало.
    Оказывается всё просто... как обычно причиной были криворукость и косоглазие

    2napTu3aH респект и уважуха.

    ЗЫ Если кому-то интересна данная тема - могу выложить то, чего я наваял.

  6. Вверх #6
    User banned
    Пол
    Мужской
    Сообщений
    806
    Репутация
    20
    Цитата Сообщение от shipr
    Ура заработало.
    Оказывается всё просто... как обычно причиной были криворукость и косоглазие

    2napTu3aH респект и уважуха.

    ЗЫ Если кому-то интересна данная тема - могу выложить то, чего я наваял.
    Давай выставляй, только небольшая просьба: Опиши все действия последовательно, примерно в таком виде:
    1. Создаем проект в, к примеру, в Эклипс. (Даешь последовательность картинок при создании проекта)
    2. Создаем класс такой-то. (тоже желательно в картинках)
    3. Подключаем библиотеку такую...
    И т.п.

    Еще лучше оформить все вышесказанное в одном PDF - файле и приложить к этой теме и теме "Проекты" (Релевантная темы) прям как в Google

    Постарайся оформить все так, чтобы человек, первый раз видящий яву понял.

  7. Вверх #7
    Не покидает форум Аватар для napTu3aH
    Пол
    Мужской
    Сообщений
    14,135
    Репутация
    4673
    to shipr и всем интересующимся.

    Вот кстати неплохой материал по обучению Struts вместе с исходниками:
    http://www.theserverside.com/tt/book...Live/index.tss

    Если что спрашивайте ... будем пробивать уже такую родную мне яву в массы
    Последний раз редактировалось napTu3aH; 29.12.2006 в 08:08.

  8. Вверх #8
    спасибо за ссылку. почитаю. Выходных будет много, постараюсь изложить то чего наваял )

    Столкнулся со следующей проблемой. У меня есть jsp в которой генерится структура (каталоги) мнимого интернет магазина. проблема в том, что при генерации страницы надо сделать 4-5 запросов к бд, оно конечно же не большие запросы и поиск и выборка идёт по индексированым столбцам, но было бы неплохо чтобы страница генерилась 1 раз, записывалась в таблицу с кешами в БД, а затем выдавалась клиенту. При повторном запросе сразу бы бралась из кеша.

    вопрос №1: как из jsp перехватить response.getWriter() .
    про jspInit() и jspDestroy() вкурсе.

    ЗЫ С наступающим.

    реализовал я всё это путём расширения класса JspWriter, out перевёл на экземпля моего переписанного класса. Чтобы выкинуть чего-то клиенту надо в самом конце jsp вставить
    _jspx_out = pageContext.getOut();
    _jspx_out.print("это сообщение увидит клиент");
    Последний раз редактировалось shipr; 29.12.2006 в 12:54.

  9. Вверх #9
    Не покидает форум Аватар для napTu3aH
    Пол
    Мужской
    Сообщений
    14,135
    Репутация
    4673
    Цитата Сообщение от shipr
    спасибо за ссылку. почитаю. Выходных будет много, постараюсь изложить то чего наваял )

    Столкнулся со следующей проблемой. У меня есть jsp в которой генерится структура (каталоги) мнимого интернет магазина. проблема в том, что при генерации страницы надо сделать 4-5 запросов к бд, оно конечно же не большие запросы и поиск и выборка идёт по индексированым столбцам, но было бы неплохо чтобы страница генерилась 1 раз, записывалась в таблицу с кешами в БД, а затем выдавалась клиенту. При повторном запросе сразу бы бралась из кеша.

    вопрос №1: как из jsp перехватить response.getWriter() .
    про jspInit() и jspDestroy() вкурсе.

    ЗЫ С наступающим.

    реализовал я всё это путём расширения класса JspWriter, out перевёл на экземпля моего переписанного класса. Чтобы выкинуть чего-то клиенту надо в самом конце jsp вставить
    _jspx_out = pageContext.getOut();
    _jspx_out.print("это сообщение увидит клиент");
    Во-первых кеширование не есть всегда хорошо.
    Поэтому для использования кеширования необходимы очень сильные доводы по поводу целесообразности, в твоих строках я таких доводов не увидел ( 4-5 запросов для одной сгенерированной страницы это мелочь).
    Во-вторых, надо также знать с какой базой ты работаешь. В Oracle для динамической выборки сложной информации можно создать view-структуру.

    По поводу вопроса.
    Смысл делать такое в jsp?
    Или ты хочешь к сервлетам вернуться?


Ответить в теме

Похожие темы

  1. Need help. Забилась мойка
    от Mash в разделе Домохозяйство
    Ответов: 25
    Последнее сообщение: 08.02.2015, 13:58
  2. Need help with C++ code :)
    от Alexxx в разделе Программирование
    Ответов: 18
    Последнее сообщение: 09.01.2008, 22:03
  3. Ben, I need help: оборудование для домашней студии
    от mikhail007 в разделе Музыка :: для исполнителей
    Ответов: 24
    Последнее сообщение: 03.08.2007, 19:54
  4. Router-Need help!
    от Badboyskiller в разделе Интернет
    Ответов: 1
    Последнее сообщение: 16.07.2007, 13:07

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения