Недавно узнал что к полям класса можно обращаться как к листу, но только из страницы.
Например есть класс
Public class a
Public string b get set
На странице можно обратиться как a['b']
Прикольно. Реально съэкономил кучу времени.
Уилдер, как это сокращает время?
Если у тебя много полей в классе. Например ты получил данные откуда-то. И тебе это все нужно вывести на странице ты просто делаешь стринговый лист и выводишь в репите. В моем случае нужно было не просто вывести а еще навешать кое какую логику на каждое поле. А полей у меня было около 50. А потом клиент еще решил и поменять кое что. Так вот процесс изменения у меня занял минут 15 вместо 3-х часов тупой ручной работы.
Я в качестве ремарки хочу сказать, что очень не люблю всю эту динамику (когда ей злоупотребляют мотивируя это гибкостью и пр.). Она чревата ошибками в рантайме, которых можно было бы избежать на этапе компиляции.
А, был невнимателен.
Integer.MAX_VALUE || Integer.MIN_VALUE
Date.MAX_VALUE || Date.MIN_VALUE
etc
Предлагаю в этой теме говорит про приятные неожиданноси :)
Эта "плюшка" называется Dynamic Visualforce Binding. Обращаться можно не как к листу, а как к мапе и делать это надо с офигенной осторожностью, потому что если не дай боже где-то в мапе не окажется ключа, по которому вы пытаетесь достать элемент - страница упадёт с очень громким треском.
Пожалуй самая весела плюшка
Да это все понятно. Просто порадовала сама возможность.
нормально так
Вот поэтому рефлекшен должен быть в контроллере, а не на странице.
Пожалуй самая весела плюшка