2011-01-12 4 views
6

Я хочу установить свойство «dir» моей таблицы из набора ресурсов на основе локали.JSTL fmt: message and resource bundle

Вот фрагмент кода:

 <fmt:setBundle basename="class.path.to.resource.bundle"/> 
     <table align=center class="" dir=<fmt:message key="registration.direction"/>> 

Когда страница делает я получаю это:

<table align=center dir=???registration.direction???> 

У меня есть два комплекта ресурсов для английского и арабского.

registration.direction = л -> Английский

registration.direction = РТЛ -> арабский

Пожалуйста, скажите, что я делаю не так? В зависимости от локали директория должна иметь «ltr» или «rtl».

Благодаря

BR SC

ответ

6

две вещи

1) Я хотел бы добавить переменную для хранения результата сообщение в

<fmt:message key="registration.direction" var="direction" /> 

затем

2) I сделает с вашим кодом

<fmt:setBundle basename="class.path.to.resource.bundle"/> 
    <fmt:message key="registration.direction" var="direction" /> 
    <table align=center class="" dir="${direction}"> 

Теперь, насколько ваши связки ресурсов, как правило, вы должны иметь следующую структуру для ресурсных пучков

/foo/bar/MyResourceBundle.properties 
/foo/bar/MyResourceBundle_en.properties 
/foo/bar/MyResourceBundle_en_US.properties 
/foo/bar/MyResourceBundle_<lang>[_COUNTRY[_VAR]].properties 

Если пакет не структурирована таким образом, что может быть некоторые проблемы.

Убедитесь, что все ключи, которые должны быть доступны, определены в MyResourceBundle с разумными значениями по умолчанию.

Я исправляю этот ответ, поскольку не уверен, что мой комментарий потерялся в функции скрыть.

С учетом того, что вы используете Struts 2, у меня создается впечатление, что вы используете перехватчик i18n. Перехватчик сохранит текущий язык в переменной sesion с именем WW_TRANS_I18N_LOCALE. Таким образом вы должны быть в состоянии добраться до него и установить региональные настройки для тегов JSTL, используя следующие:

<fmt:setLocale scope="session" value="${sessionScope.WW_TRANS_I18N_LOCALE}" /> 

Надежда, которая работает для вас.

+0

Спасибо, сработало. BR. Совет Безопасности ООН – SmoothCriminel

+0

Рад помочь –

+1

Привет, Дейв, я вернулся! Проблема в том, что когда я меняю язык, значение «dir» не изменяется. По логике он должен, как и все другие значения, меняться. Как я могу его отладить? Я использую Struts2 I18N. BR. Совет Безопасности ООН – SmoothCriminel

Смежные вопросы