私はURLを持っています/{database}/api/data/collections/name/{name}
。Lotus Notes Xpages、APIドキュメントの "Content-Range"を取得する方法
ビューのすべてのエントリを取得する方法{name}
をgetResponseHeader("Content-Range")
としますか?
私はURLを持っています/{database}/api/data/collections/name/{name}
。Lotus Notes Xpages、APIドキュメントの "Content-Range"を取得する方法
ビューのすべてのエントリを取得する方法{name}
をgetResponseHeader("Content-Range")
としますか?
SSJS
あなたはHttpURLConnectionのメソッドのgetHeaderFields()
で、すべてのレスポンスヘッダフィールドを取得することができます。
希望のヘッダーフィールドをget('Content-Range')
で選択します。
例:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:text escape="true" id="computedField1">
<xp:this.value><![CDATA[#{javascript:
var url = new java.net.URL(
"http://yourServer/yourDatabase.nsf/api/data/collections/name/All");
var conn:java.net.HttpURLConnection = url.openConnection();
conn.setRequestProperty("Accept", "application/json");
if (conn.getResponseCode() == "200") {
try {
return conn.getHeaderFields().get('Content-Range');
} catch(e) {
return 'Error reading header field "Content-Range"';
}
} else {
return 'Error ' + conn.getResponseCode() + " " + conn.getResponseMessage();
}
}]]></xp:this.value>
</xp:text>
</xp:view>
この例のXPageは、例えば、結果としてレンダリングitems 0-9/35
であり、応答が合計35エントリのエントリ0〜9を含むことを示す。
あなたがエントリの合計数を取得したい場合のみ、同じURL 35
だけのためにレンダリングされます
var range = conn.getHeaderFields().get('Content-Range').get(0);
var total = range.substr(range.indexOf('/') + 1);
return total;
これにライン
return conn.getHeaderFields().get('Content-Range');
を変更。
CSJSクライアント側の
利用のXMLHttpRequestの方法getResponseHeader()
:
var xhr = new XMLHttpRequest();
xhr.open('GET', url, false);
xhr.send(null);
var range = xhr.getResponseHeader("Content-Range");
var total = range.substr(range.indexOf('/') + 1);
return total
ありがとうございました –
それはサーバーjsで動作します。しかし、私はクライアントjsに入ってほしい。 〜私は使用するときに動作します:var xhr = new XMLHttpRequest(); xhr.open( 'GET'、url、false); xhr.send(null); var contentRanger = xhr.getResponseHeader( "Content-Range")。toLowerCase(); contentRanger = contentRanger.replace( 'items'、 ''); contentRanger = contentRanger.split( '/'); var total = contentRanger [1];返信合計 –
「私はSSJSを使用しています...」というあなたのコメントで述べたように、私はServer Side JavaScript(SSJS)バージョンを作成しました。だから、私たちは両方のバージョンを持っています:あなたのコメントに私の答えのSSJSとCSJS。 –
あなたがすべてのエントリの*番号*を取得したいですか? Domino Access ServicesのURLを呼び出すLotusScript、Java、またはSSJSを使用していますか? –
はい、すべてのエントリの番号を取得します。私はSSJSを使ってDomino Access ServicesのURLを呼び出す –