検索・一覧データ取得

最終更新日: 2021年3月8日
R8 | R9

検索

@RequestMapping(value="/rest/[modelid]/list", method=GET)

URL例

http://localhost:8921/wagby/rest/customer/list

レスポンス

ヒットしたデータ件数すべてではなく、1ページのサイズ(SizePerPage)で指定したデータを取得します。
次のページはnextで求めることができます。前のページはprevで求めることができます。 ページサイズの変更は「検索結果の1ページ当たりの数を設定する」で説明します。これらは後述します。

返戻の内容例を示します。"result" はページ情報です。"entity" は検索結果のモデル情報です。"listp" は一覧表示用の値です。"conditionp" は検索条件です。

{
 "result": {
   "size": 4,
   "next": 2,
   "current": 1,
   "nextPage": true,
   "prevPage": false
 },
 "errors": {
   "jfcinfo": [],
   "jfcwarn": [],
  "jfcdebug": [],
   "jfcerror": []
 },
 "status":"ShowListCustomerController.input",
 "entity": [
   {
     "customerid": 1001,
     "name": "Yamada",
     "email": []
   },
   {
     "customerid": 1000,
     "name": "Suzuki",
     "email": []
   }
 ],
 "listp": {
   "sortable": "customerid",
   "sort": "",
   "order": "",
   "item": [
     {
       "customerid":"1001",
       "name":"Yamada",
     },
     {
       "customerid":"1000",
       "name":"Suzuki",
     }
   ]
 },
 "conditionp": {
   "name": {
    "content": null,
     "formatted": null,
     "errorcode":""
   },
   "email": {
     "content": null,
     "formatted": null,
     "errorcode":""
   }
 }
}

検索条件をパラメータで指定する

パラメータで検索条件を指定する方法です。

URL例

http://localhost:8921/wagby/rest/customer/list?customer_cp_002fname=Suzuki

レスポンス

返戻の内容例を示します。

{
 "result": {
   "size": 1,
   "next": 1,
   "current": 1,
   "nextPage": false,
   "prevPage": false
 },
 "errors": {
   "jfcinfo": [],
   "jfcwarn": [],
   "jfcdebug": [],
   "jfcerror": []
 },
 "status":"ShowListCustomerController.input",
 "entity": [
   {
     "customerid": 1000,
     "name": "Suzuki",
     "email": []
   }
 ],
 "listp": {
   "sortable": "customerid",
   "sort": "",
   "order": "",
   "item": [
     {
       "customerid":"1000",
       "name":"Suzuki"
     }
   ]
 },
 "conditionp": {
   "name": {
     "content":"Suzuki",
     "formatted": null,
     "errorcode":""
   }
 }
}

requestパラメータによる検索条件の指定

@RequestMapping(value="/rest/[modelid]/list", method=POST, headers={"Content-Type=application/x-www-form-urlencoded"})

パラメータ

フォーム画面と同様のパラメータをPOSTとして指定します。
例:
customer_cp_002fname=Suzuki

レスポンス

「検索」と同様です。

JSONオブジェクトによる検索条件の指定

@RequestMapping(value="/rest/[modelid]/list", method=POST, headers={"Content-Type=application/json"})

HTTPヘッダ

Content-Type:application/json

リクエスト

コンディションのプレゼンテーションオブジェクトのJSON表現を指定します。

{
   "name": {
     "content":"Suzuki"
   }
}

choose属性の扱い

チェックボックスとして用意した項目は、選択肢に choose 属性が付与されています。 これを検索条件に含める場合、choose 属性をtrueとしてサーバに送ります。

{
  "jgroupid": [
    { 
    "id": "1000",
    "choose":true
    }
  ]
}

レスポンス

「検索」と同様です。

次ページの検索結果を取得

@RequestMapping(value="/rest/[modelid]/list/next", method=GET)

レスポンス

「検索」と同様です。

前ページの検索結果を取得

@RequestMapping(value="/rest/[modelid]/list/prev", method=GET)

レスポンス

「検索」と同様です。

最初のページの検索結果を取得

@RequestMapping(value="/rest/[modelid]/list/first", method=GET)

レスポンス

「検索」と同様です。

最後のページの検索結果を取得

@RequestMapping(value="/rest/[modelid]/list/last", method=GET)

レスポンス

「検索」と同様です。

開始件数を指定した検索結果を取得

@RequestMapping(value="/rest/[modelid]/jump/[firstresult]", method=GET)

firstresultに取得する検索結果の開始件数(レコード番号)を指定します。
検索結果の数より大きい数字を指定した場合は、最後のページ(last)を取得します。

例えば、1ページ当たりの数(取得件数)が10の場合、10と指定することで2ページ目、20と指定することで3ページ目が表示されます。

例1

http://localhost:8921/wagby/rest/customer/list/jump/1

1ページ目(1件目から10件目)の検索結果を取得する。0から9までの数字を指定した場合は、1ページ目となる。

例2

http://localhost:8921/wagby/rest/customer/list/jump/10

2ページ目(11件目から20件目)の検索結果を取得する。10から19までの数字を指定した場合は、2ページ目となる。

例3

http://localhost:8921/wagby/rest/customer/list/jump/20

3ページ目(21件目から30件目)の検索結果を取得する。20から29までの数字を指定した場合は、3ページ目となる。

レスポンス

「検索」と同様です。

検索結果の1ページ当たりの数を設定する

@RequestMapping(value="/rest/[modelid]/changeSizePerPage", method=POST, headers={"Content-Type=application/x-www-form-urlencoded"}, params="__jfc_size_per_page")

パラメータ

パラメータ説明
__jfc_size_per_page1ページ当たりの数

レスポンス

「検索」と同様です。

検索時に指定できるパラメータ

requestパラメータを利用する

検索パラメータに付与できる制御用パラメータは次のとおりです。

パラメータ説明
pagesizejshparam取得件数
firstresultjshparam開始件数
sortkeyjshparamソートキー。1つのみ指定できます。(*1)
1. 画面操作で、ソートしたい項目の列をクリックする操作に相当します。

例1:
firstresultjshparam=0 と設定した場合、検索結果の先頭から、一覧表示の「ページにおける表示数」の分までを取得します。

例2:
firstresultjshparam=10 と設定した場合、検索結果の10件目から、一覧表示の「ページにおける表示数」の分までを取得します。

例3:
pagesizejshparam=100&firstresultjshparam=10 と設定した場合、検索結果の10件目から110件目までを取得します。

例4:
sortkeyjshparam=customerid:DESCと指定した場合、customerid項目を降順でソートした結果を取得します。

":ASC" という指定はありません。標準が「昇順」となっています。

JSONオブジェクトを利用する

JSONオブジェクトの場合は次のようになります。

パラメータ説明
pagesize取得件数
firstresult開始件数
sortkeyソートキー。1つのみ指定できます。(*2)
2. 画面操作で、ソートしたい項目の列をクリックする操作に相当します。

例:

{
       "pagesize": 100,
       "firstresult": 10,
       "sortkey": "customerid:DESC"
}

検索結果の件数を取得する

where 条件に合致した「件数」を返します。暗黙条件があれば、それも適用されます。
リクエストはlistと同様に検索条件を指定できます。

@RequestMapping(value="/rest/[modelid]/count", method=GET)
@RequestMapping(value="/rest/[modelid]/count", method=POST, headers={"Content-Type=application/x-www-form-urlencoded"})
@RequestMapping(value="/rest/[modelid]/count", method=POST, headers={"Content-Type=application/json"})

レスポンス

返戻の内容例を示します。listからresult, entity, listpを省いた形式となります。totalに見つかった件数が出力されます。

{
    "conditionp": {
        "pagesize": 10,
        "firstresult": 0,
        "sortkey": null,
        "pkey1jshparam": {
            "content": "",
            "formatted": "",
            "errorcode": ""
        },
        "pkey2jshparam": {
            "content": "",
            "formatted": "",
            "errorcode": ""
        },
        "item1": {
            "content": null,
            "formatted": null,
            "errorcode": ""
        },
...
        "item5": {
            "content": null,
            "formatted": null,
            "errorcode": ""
        },
        "noselection_jshparam": []
    },
    "total": 2,
    "errors": {
        "jfcerror": [],
        "jfcinfo": [],
        "jfcwarn": [],
        "jfcdebug": []
    },
    "status": "showListModel1.input"
}

一覧表示の集計

一覧表示の集計」を定義したとき、その結果がレスポンスに含まれます。キーは "sum", "count", "avg", "max", "min" です。