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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с масссивами в jstl 
:(
    Опции темы
SergeSerge
Дата 18.12.2009, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Помогите пожалуйста, совсем замучился! Есть страница, в которую выводятся записи из БД. Для редактирования записей существует 2 кнопки: Edit и delete. При нажатии на кнопку надо, чтобы страница узнавала, какая именно кнопка к ней привела. Каждая из кнопок находится в своей форме, для упрощения обработки.  Названия кнопок генерирую так:
Код

<form style="width:45px; float:left;" action="EditQuestion.jsp" method=post><input type="Submit"
 name="<%out.println(""+ManageListHandler.edits[i]);%>" value="Edit"/></form>


Весь затык в том, чтобы передать имя кнопки в бин, но как это сделать, не знаю, ведь по факту, кнопок у меня может быть море, никакого бина не хватит. Или подскажите, как сделать так, чтобы прямо на jsp странице перебирался массив из уже готового бина. Пробовал сделать так:
Код

  <c:forEach var="map_entry" items="${param}">
  <c:if test="${map_entry.key==QuestionHandler.edits}">
  <c:out value="${QuestionHandler.edits}"></c:out>
  </c:if> 


Где QuestionHandler.edits - массив в бине. Понимаю, что ересь, но у меня уже закончились идеи, как это можно сделать.
PM MAIL   Вверх
garbuz
Дата 19.12.2009, 00:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 8
Всего: 11



Делается это примерно так.
На страницу выводите записи из бд. Напротив каждой строки рисуете две ссылки edit / delete. Каждая из которых содержит параметр типа id и action. Получаются ссылки вида 
Код

<a href="myServlet?id=312&action=edit">Править</a>
<a href="myServlet?id=312&action=delete">Удалить</a>

В сервлете/жсп странице соотвественно получаете параметры и производите нужные действия.
Можно не лепить много ссылок, можно расставить чекбоксы и сделать две кнопки. Кому как нравится.
PM MAIL   Вверх
SergeSerge
Дата 19.12.2009, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Да с ссылками я быстро бы сделал. Но нужны именно кнопки. Вот такой изврат.
PM MAIL   Вверх
garbuz
Дата 19.12.2009, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 8
Всего: 11



Цитата(SergeSerge @  19.12.2009,  12:32 Найти цитируемый пост)
о нужны именно кнопки. Вот такой изврат.

Опишите задачу поподробнее, не очень понятно из первого поста. Какой массив? Почему именно массив? Почему перебираем мап? Какие бины?
PM MAIL   Вверх
SergeSerge
Дата 19.12.2009, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Задача: надо сделать так, чтобы при нажатии на кнопку мы переходили на другую страницу, к примеру, на страницу редактирования вопроса. Страница должна знать, какой именно вопрос мы редактируем, то есть он должен быть выведен на этой странице в текстовом поле.

Массивы и мое желание передать все в бин появилось из-за того, что мне так удобнее работать. А поскольку кнопки я генерирую таким образом, чтобы у них имя было АйДишником записи из базы данных, то пробовал создать массив в бине из этих самых айдишников, чтобы, получив имя кнопки, методом перебора найти нужную для редактирования запись в бд. 

Вот, не знаю, как это сделать.

P.S. Мап перебираем потому, что на предыдущей странице каждая кнопка в своей форме. То есть заведомо там будет только один параметр, имя кнопки. А что касается бина, то там как раз и хранится тот самый массив, который я перебрать хотел. Я же, блин, не знаю ничего, кроме цикла forEach в jstl smile 

Это сообщение отредактировал(а) SergeSerge - 19.12.2009, 14:36
PM MAIL   Вверх
garbuz
Дата 20.12.2009, 01:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 8
Всего: 11



SergeSerge, ну уж раз хочется кнопки, так пусть будут кнопки.
Предлагаю следующее, может быть не самое красивое решение:
Раз уж вы делаете множество форм, то можно имя кнопкам давать одно и то же. Это избавит вас от переборов для поиска нужной записи. В каждую форму помещать скрытое поле с идентификатором.
Типа того
Код

<form action="quizServlet">
...
<input type="hidden" value="${id}"/>
<input type="submit" name="Edit" value="Edit"/>
/form>


или вообще так

Код

<form action="quizServlet?id={id}">
...
<input type="submit" name="Edit" value="Edit"/>
/form>


Тогда на стороне сервера будет нечто

Код

if (request.getParameter("Edit") != null){ // нажали кнопку Edit

Long id = Long.parseLong(request.getParameter("id")) // получили нужный id

// Достали объект
// положили его в запрос 
// перешли на страницу для редактирования, имея все данные об объекте
...

}



Ну как-то так короче

PM MAIL   Вверх
SergeSerge
Дата 20.12.2009, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Сделал по второму способу, работает. garbuz, огроменнное спасибо, тема закрыта.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.1050 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


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

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