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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> jsp динамический c out value 
V
    Опции темы
implements
Дата 18.3.2015, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Добрый день
нужно элегантно отобразить данные в jsp
к примеру получаю myObject который имеет количество полей countFields ну и сами поля field1,filed2 e.t.c
вот нужно отобразить filed,  если countFileds =3, то вывести field1,field2,field3 и т.д.
как можно это сделать в jsp?
попробовал банальную конкатинацию,
<c:forEach var="i" begin="1" end="${myObject.countFields }">
  <c:out value=' ${myObject.field+i}'/>
</c:forEach>
понятно что получил бред =)

PM MAIL   Вверх
AntonSaburov
Дата 18.3.2015, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

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



Я не вижу другого способа, кроме как честно использовать рефлекшн.
PM MAIL WWW ICQ   Вверх
implements
Дата 18.3.2015, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(AntonSaburov @  18.3.2015,  12:48 Найти цитируемый пост)
Я не вижу другого способа, кроме как честно использовать рефлекшн.

не совсем понял, можете объяснить, ну или ткнуть в пример

Добавлено через 1 минуту и 54 секунды
а вроде понял, нууу в jsp этого не хотелось бы, ну раз нет других способов попробую, этот
PM MAIL   Вверх
mbasil
Дата 25.3.2015, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А не проще ли заменить набор полей на коллекцию?
Если только вы не пытаетесь написать что-то супер универсальное, то есть, если класс может быть любым. В этом, последнем случае без рефлекшн не обойтись никак -даже не пытайтесь.
-----------------------------------------------------------------------------------------------------------------
Написал, но вскоре пришло в голову "поганенькое" решение,
без использования рефлекшн - делегировать самому классу
выдавать массив строковых значений:

public class MyClass {

  private double price = 345.65;
  private java.util.Date dt = new java.util.Date();

  private static final SimpleDateFormat df =
             new SimpleDateFormat("dd.MM.yyyy");
  
  public String[] getFields() {
      String[] as = new String[2];
      as[0] = String.valueOf( price );
      as[1] = df.format( dt );
      return as;
  }

Это сообщение отредактировал(а) mbasil - 26.3.2015, 09:37
PM MAIL   Вверх
mbasil
Дата 28.3.2015, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Чтобы уж подытожить:
Мне кажется (судя по вопросу) вы пытаетесь организовать универсальный метод вывода строк из полей сущности в HTML, и, обратно: автоматические преобразования строковых полей формы в свойства сущности.
Подобную идею я пытался реализовать пару лет назад в виде библиотеки конвертора, состряпанной на основе Hibernate Validator. Как только начало что-то получаться, я понял, что дальше надо писать библиотеку пользовательских тегов для страницы. Несложно, но скучно, и как-то забросил, а вообще, мне кажется, идея неплоха. Что-то вроде JSF для решения конкретной задачи, только проще и без вывертов.

Это сообщение отредактировал(а) mbasil - 29.3.2015, 21:29
PM MAIL   Вверх
AntonSaburov
Дата 31.3.2015, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

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



В итоге получится тот же JSF или Struts.
PM MAIL WWW ICQ   Вверх
mbasil
Дата 31.3.2015, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Это так, но с небольшим отличием.
В JSF была реализована концепция валидатора, но она была неотделима от JSF. Спецификация на валидацию и решение в виде отдельных фреймворков, во-первых позволило осуществлять проверки на разных уровнях (включая Hibernate), не требуя при этом использования в некотором смысле тяжеловесного решения JSF. То есть такое решение "оторвало" валидацию от JSF.
А процесс конвертирования, по-видимому считается привязанным непосредственно к презентационному слою, и вроде как нет особого смысла отрывать его от JSF. Мне кажется это не так.
Вынесение валидации за пределы JSF и привязка описания с помощью аннотаций к полям Entity поменяла суть процесса. То же относится к конвертированию. Это действо - не суть исключительно вспомогательная операция презентационного слоя, а качество присущее Entity классам, то есть доменам полей.
Сегодня в большинстве случаев можно считать объекты Entity основными носителями данных, которые вполне могут инкапсулировать описание валидации и конвертирования с помощью аннотаций.
Другой код в Entity кроме "геттеров", "сеттеров"(пустых - без кода), а также hashCode(), equals(), toString() (и возможно compareTo()) просто не нужен.
Как не нужны всякие там ActionForm (Struts) и проч. Но, это только мое личное мнение (всегда есть возможность ошибиться).
PM MAIL   Вверх
implements
Дата 2.4.2015, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



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

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

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


 




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


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

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