Это не встроенная функция PortletPreference : метод setValue допускает только строку, к сожалению, вы не можете передать карту.
Однако я вижу решение жестко закодировать ее, но это немного уродливо ...
Long userId = ...... ;
String userValue = ..... ;
PortletPreferences prefs = request.getPreferences();
prefs.setValue("myConfig-"+userId, myUserVal);
prefs.store();
И для извлечения данных:
String userValue = prefs.getValue("myConfig-"+userId, defaultValue);
Это решение будет работать, но не делайте этого, если у вас есть большойколичество пользователей.Настройки портлета сохраняются в xml в вашей базе данных. Если у вас более 100 тыс. Пользователей, он взорвется:)
Если вы считаете, что это решение недостаточно чистое, вам придется создать свое собственноеметод персистентности с помощью ServiceBuilder.