使用AngularJS的Struts 1

时间:2016-08-09 16:43:24

标签: angularjs json jsp struts-1 resourcebundle

我有一个执行此操作的前端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>

1 个答案:

答案 0 :(得分:0)

Angular与DOM一起使用,已经由浏览器加载。在将HTML发送到浏览器之前,JSP在服务器端执行。如果您可以在此阶段翻译消息键,那么它将在结果HTML中呈现,您可以使用其值来填充Angular模型。然后将其属性绑定到视图,该视图已经具有已翻译的值。

另一方面,如果您无法将键映射到服务器端的值,您仍然可以选择将作为参数发送的键的转换值转换为另一个操作。建议不要向服务器发出大量xhr请求,只是为了返回已翻译的值。但是,如果您的操作将返回JSON对象,则可以采用角度模型。