#struts2
#struts2
Вопрос:
У меня есть в моем файле свойств:
viewType.periodText=Period Report
viewType.periodValue=periodreport
и в JSP я делаю это:
<s:radio theme="simple" name="webAcModel.reportView"
list="#{'%{getText('viewType.periodValue')}':
'%{getText('viewType.periodText')}'}"></s:radio>
но это выдает мне ошибку. Но если я сделаю это:
<s:radio theme="simple" name="webAcModel.reportView"
list="#{'periodreport':'Period Report'}"></s:radio>
все работает нормально.
Есть идеи, как я могу это сделать?
Ответ №1:
Слишком много символов. Нет необходимости в %{}
inside #{}
и поскольку getText
возвращаемая строка ''
тоже не нужна.
<s:radio theme="simple" name="webAcModel.reportView"
list="#{getText('viewType.periodValue'):
getText('viewType.periodText')}" />
Кстати, использование getText
для отправленного значения с помощью переключателя — не лучший подход, IMO.
Комментарии:
1. спасибо, я не упомянул в вопросе, что существует также сетка, которая будет отображаться / скрываться на основе этих данных, а также запросы будут выполняться в соответствии с выбранным, поэтому, чтобы сделать его согласованным, я использовал этот подход.
2. @Haider: чтобы сделать его согласованным, вы должны использовать некоторый фиксированный ключ, а не свойство из пакета ресурсов. Не забудьте принять / проголосовать за ответы, которые вам помогли.
3. например, если я объявлю эти ключи в классе, например, class Constant { public String peridvalue = «periodreport» }, то как я его использую?
4. @Haider: объявите его как
static final
и используйте.5. @Haider Одним из решений является установка некоторой переменной в вашем JSP, которая будет содержать требуемое значение (например, так:
<s:set var="alias" value="@com.packagename.models.UsernameModel$UsernameTypes@ALIAS" />
) и ссылаться на нее по мере необходимости (напримерAlias value: <s:property value="#alias" />
)