我創建了一個SAPUI5表小部件並確保它可以正常工作。現在,當點擊一行時,詳細視圖被加載,但沒有數據存在。服務器公開一個實體Site,其主鍵類型爲「string」。ODataModel v2中的URI編碼
客戶機側代碼如下(假設oModel是ODataModel,sSiteCode是可包含西里爾字符構成的字符串):
// sSiteCode may contain Cyrillic characters
var oKey = {
SiteCode: sSiteCode
};
var sPath = "/" + oModel.createKey("Sites", oKey);
this.getView().bindElement({path: sPath});
事實證明,如果sSiteCode =「б」(即包含西里爾字符),則GET請求將被(經由配料)發送到以下URI:
http://<server>:<port>/odata/Sites('б')
然而,服務器不能解析該URI(和隨後用404回覆),因爲它不知道使用什麼編碼。我修補的方法ODataModel.prototype._createRequestUrl如下:
sNormalizedPath = this._normalizePath(sPath, oContext);
sNormalizedPath = encodeURI(sNormalizedPath); // my addition
然後它似乎工作,對於這種特殊情況。我想知道這是一個錯誤還是一個功能,接下來我應該怎麼做?
僅供參考,我正在使用OpenUI5 1.32.11。
如果您確實認爲這是一個值得修復的bug,請將其發佈到他們的github存儲庫中:https://github.com/SAP/openui5/issues – Marc
感謝您的建議Marc。我已經提交了一張票:https://github.com/SAP/openui5/issues/830 –