【问题标题】:Struts 1 with AngularJS带有 AngularJS 的 Struts 1
【发布时间】:2016-12-15 19:52:08
【问题描述】:

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

【问题讨论】:

  • JSP 在服务器端执行。 Angular 表达式在浏览器中进行评估。
  • @JBNizet 消息资源是服务器端的。没错。
  • 您确定要将 Struts1 与 AngularJS @Dima 一起使用吗?

标签: angularjs json jsp struts-1 resourcebundle


【解决方案1】:

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

另一方面,如果您无法将键映射到服务器端的值,您仍然可以选择获取作为参数发送到另一个操作的键的转换值。不推荐只为返回翻译值而向服务器发出大量 xhr 请求的方式。但是,如果您的操作将返回 JSON 对象,那么它可以与 Angular 模型一起采用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多