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