如何将数据从JAX-RS服务传递到Polymer自定义组件?

时间:2016-07-10 21:44:09

标签: java html rest polymer polymer-1.0

我正在研究使用Polymer构建一个简单的Web应用程序。我想将数字ID传递给自定义组件。我可以使用JSP通过将id添加到地图并将其传递给Viewable:

来实现此目的
private Response buildUI(LinkedHashMap<String, String> map) {
     return Response.ok(new Viewable("/MyApp", map)).build();
 }

我宁愿不介绍JSP来处理单个值。

有没有更简单的方法来实现这个目标?

HTML代码正在进行中:

// MyApp.html

<html>
<head>
  <title>iron-form demo</title>

  <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes">
  <meta name="mobile-web-app-capable" content="yes">
  <meta name="apple-mobile-web-app-capable" content="yes">

  <script src="../../webcomponentsjs/webcomponents-lite.js"></script>
  <link rel="import" href="custom-form-element.html">
  <link rel="import" href="custom-id-element.html">
</head>
<body unresolved>

  <custom-form-element>
    <template>
      <form is="iron-form" method="get" action="/" id="basic">
        <custom-id-element value="{id}"/>
        <paper-button raised onclick="_submit(event)">Submit</paper-button>
      </form>
      <script>
        function _submit(event) {
          Polymer.dom(event).localTarget.parentElement.submit();
        }
        basic.addEventListener('iron-form-submit', function(event) {
          this.querySelector('.output').innerHTML = JSON.stringify(event.detail);
        });
      </script>
    </template>
  </custom-form-element>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

事实证明,使用聚合物组件&#34; app-route&#34;解决方案很简单。我的应用程序是基于REST的,ID是一种资源,因此将它放在URI路径中是合乎逻辑的:

<app-route
    route="{{route}}"
    pattern="/:id"
    data="{{routeData}}"
    tail="{{subroute}}">
</app-route>

现在我可以将数据绑定到我需要它的id:

<iron-label>
    route = {{routeData.id}}
</iron-label>