1

私はSpring Bootアプリケーションに取り組んでいます。HTML ビューで、カスタム エンティティのリストを返す RestController への ajax 呼び出しを行います。

@Controller
public class MyController {
    @ResponseBody
    @JsonView(View.MyView.class)
    public List<CustomEntity> getEntities() {
        ...
    }
}

これは正常に機能しています。予想どおり、次の構造が得られます。

{
    "id": "1",
    "name": "Test1"
},
{
    "id": "2",
    "name": "Test2"
}

ビューでは、Dynatable で使用したいと考えています。そして、ここに私の問題があります。次の構造が必要です。

{
  "records": [
    {
      "id": "1",
      "name": "Test1"
    },
    {
      "id": "2",
      "name": "Test2"
    }
  ],
  "queryRecordCount": 2,
  "totalRecordCount": 2
}

テンプレートに基づいて jackson (またはその他のフレームワーク) を使用して JSOn ビューを生成する方法はありますか? その場合、Dynatable でデータを使用できますか?

前もって感謝します、

ステファン

4

1 に答える 1

2

You could create a wrapper that does this for you...

class DyntableResponse<T> {
  private List<T> records;
  public List<T> getRecords() { return records; }
  public void setRecords(final List<T> records) { this.records = records; }
  public int getQueryRecordCount() { return records.size(); }
  public int getTotalRecordCount() { return records.size(); }
}

And then return it from your RestController...

@Controller
public class MyController {
    @ResponseBody
    @JsonView(View.MyView.class)
    public DyntableResponse<CustomEntity> getEntities() {
       final DyntableResponse<CustomEntity> resp = new DyntableResponse<>();
       resp.setRecords(...); // Your finder here.
       return resp;
    }
}

This is untried, but should be close.

于 2016-02-15T17:23:20.303 に答える