Я борюсь с небольшой проблемой интернационализации в одном из моих приложений. История выглядит так:
У меня есть таблица данных, которая отображает записи, и selectOneMenu, чтобы выбрать столбец таблицы данных для фильтрации. В selectOne загружаются SelectItems, которые заполняются в соответствии с фактической локалью в компоненте поддержки во время обновления данных.
Теперь, когда пользователь меняет локаль, содержимое selectOne остается в старой локали до тех пор, пока страница не будет перерисована. Это вполне логично и ожидаемо.
Конечно, я хочу, чтобы это изменилось.
Поэтому я попытался написать собственный selectOne, который использует selectItems, которые содержат ссылки на записи languageFile, чтобы иметь возможность изменять их без повторного рендеринга.
Вот что я пробовал
<select id="j_id5:filterSelector" name="j_id5:filterSelector" size="1">
<c:forEach var="item" items="#{gridBean.filterFields}">
<option value="#{item.Value}">#{msg[item.Label]}</option>
</c:forEach>
</select>
К сожалению, JSF сообщает мне, что у элемента нет свойства Label или Value, во что я с трудом верю. ;)
Кто-нибудь знает, как получить доступ к этим свойствам таким образом?