Назовите меня ленивым, но кодирование конвертера похоже на много ненужной работы. Я использую Primefaces и, не использовав простой список валиний JSF2 или выпадающее меню раньше, я просто предположил (ленивый), что виджет может обрабатывать сложные объекты, т. Е. Передавать выбранный объект так же, как и его соответствующий геттер / сеттер многие другие виджеты. Я был разочарован тем, что (после нескольких часов царапин на голове) эта возможность не существует для этого типа виджетов без конвертера. На самом деле, если вы поставляете сеттер для сложного объекта, а не для строки, он терпит неудачу (просто не вызывает сеттер, исключение, отсутствие ошибки JS), и я потратил массу времени, пройдя через BalusC отличный инструмент устранения неполадок , чтобы найти причину, безрезультатно, поскольку ни одно из этих предложений не применялось. Мой вывод: виджет listbox / menu нуждается в адаптации к тому, что другие виджеты JSF2 этого не делают.
В конце концов я сопротивлялся кодированию конвертера и обнаружил через пробную версию и ошибку, что, если вы установите значение виджета на сложный объект, например:
... когда пользователь выбирает элемент, виджет может вызывать установщик String для этого объекта, например setSelectedThing(String thingString) {...}
, а переданная строка - это строка JSON, представляющая объект Thing. Я могу проанализировать его, чтобы определить, какой объект был выбран. Это немного похоже на хак, но меньше на взломе, чем на конвертер.
Я понял: после однократного сохранения настроек Jenkins (в графическом интерфейсе) он сгенерирует XML-файлы для конфигураций плагинов в $JENKINSHOME
.
Должно было знать, что я работаю с докером Дженкинсом.