Я думаю, что вы должны создать структуру и шаблон, который будет представлять ваш баннер.
Ваш администратор создал бы статью для каждого баннера с этой структурой / шаблоном.Ваш портлет будет искать статьи на основе вашей структуры / шаблона, или вы можете использовать какую-то категорию («баннер»?) Или использовать пользовательский тип статьи для поиска.
Или еще более простым способом будет то, что вашАдминистратор должен загрузить баннеры в определенную папку «Галерея изображений», и ваш портлет имеет конфигурацию только для ввода идентификатора папки.Портлет просто перебирает эту папку и использует данные из возвращенных объектов IGImage.
ОБНОВЛЕНИЕ:
Если необходимо загружать изображения из предпочтений портлета, а не создавать из них с обязательными полями.Используя эти данные и загруженное изображение, используйте API-интерфейс liferay, чтобы сохранить его в галерее изображений.
См.
com.liferay.portlet.imagegallery.service.IGImageLocalServiceUtil.addImage(long, long, long, String, String, File, String, ServiceContext);
com.liferay.portlet.imagegallery.service.IGImageLocalServiceUtil.addIGImage(IGImage);
com.liferay.portlet.imagegallery.model.IGImage
Экземпляр IGImage имеет множество свойств, среди которых есть поля, которые вы хотите.