Не существует стандартного способа справиться с этим. Поскольку вы, очевидно, уже имеете полный контроль над созданием ресурсного пакета, лучше всего ввести новое ключевое слово / соглашение, например ключ, заканчивающийся .list
:
<c:forEach items="${bundle['message.p.list']}" var="p">
<p>${p}</p>
</c:forEach>
.. и создайте пользовательский ResourceBundle
, в котором вы переопределяете handleGetObject()
, чтобы вернуть требуемые значения в виде List<String>
, что-то вроде:
protected Object handleGetObject(String key) {
if (key.endsWith(".list")) {
String listkey = key.substring(0, key.length() - 5);
List<String> list = new ArrayList<String>();
for (int i = 1; containsKey(listkey + i); i++) {
list.add(String.valueOf(getObject(listkey + i)));
}
if (!list.isEmpty()) {
return list;
}
}
return getObject(key);
}