我有一个执行此操作的前端JSP:
<label>{{metadata[key].displayName}}:</label>
这可以工作并显示值
但是,该值实际上是Struts 1框架中定义的ApplicationResource
的“关键”。所以,最终,我想做这样的事情
<label><bean:message key="{{metadata[key].displayName}}"/>:</label>,
但这不起作用,我得到的错误(在日志中)是
Missing message for key '{{metadata[key].displayName}}'.
这意味着,所有配置都没问题,唯一的问题就是这样做
{{metadata[key].displayName}}
正确地插入struts-bean标记的“key”属性。
怎么做?我有更完整的代码在这里:
<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>
答案 0 :(得分:0)
Angular与DOM一起使用,已经由浏览器加载。在将HTML发送到浏览器之前,JSP在服务器端执行。如果您可以在此阶段翻译消息键,那么它将在结果HTML中呈现,您可以使用其值来填充Angular模型。然后将其属性绑定到视图,该视图已经具有已翻译的值。
另一方面,如果您无法将键映射到服务器端的值,您仍然可以选择将作为参数发送的键的转换值转换为另一个操作。建议不要向服务器发出大量xhr请求,只是为了返回已翻译的值。但是,如果您的操作将返回JSON对象,则可以采用角度模型。