2016-08-09 4 views
0

у меня есть передний конец JSP, который делает это:Struts 1 с AngularJS

<label>{{metadata[key].displayName}}:</label> 

это работает и отображает значение

Однако, это значение действительно «ключ» к ApplicationResource определено в Struts 1. Таким образом, в конечном счете, я хочу сделать что-то вроде этого

<label><bean:message key="{{metadata[key].displayName}}"/>:</label>, 

, но это не работает, и ошибка я получаю (в журналах) является

Missing message for key '{{metadata[key].displayName}}'. 

Это означает, что все конфигурации были в порядке, и единственной проблемой является получение этого {{metadata[key].displayName}} должным образом в атрибут «ключ» тега struts-bean.

Как это сделать? Более полный код у меня есть:

<div class="row" ng-repeat="(key, val) in item" 
ng-if="metadata.hasOwnProperty(key)"> 
<div> 

    <%-- <label>{{metadata[key].displayName}}:</label> --%> 
    <label><bean:message key="<%={{key}}%>"/>:</label> 
</div> 
</div> 
+2

JSP выполнены на серверной стороне. Угловые выражения оцениваются в браузере. –

+0

@JBNizet Ресурсы сообщений являются серверными. Это верно. –

+0

Вы действительно хотите использовать Struts1 с AngularJS @Dima? –

ответ

0

Угловые работы с DOM, которые уже были загружены браузером. JSP выполняется на стороне сервера, прежде чем HTML будет отправлен в браузер. Если вы можете перевести ключ сообщения на этом этапе, он будет отображаться в полученном HTML, где вы можете использовать его значение для заполнения угловой модели. А затем привяжите его свойство к представлению, которое уже должно было перевести значение.

С другой стороны, если вы не можете сопоставить ключ со значением на стороне сервера, у вас все еще есть выбор, чтобы получить переведенное значение для ключа, отправленного как параметр, в другое действие. Не рекомендуется использовать много запросов xhr для сервера только для возврата переведенного значения. Однако, если ваше действие вернет объект JSON, его можно будет использовать с угловой моделью.

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