当前位置: 首页 > Web前端 > HTML

SAPUI5LibraryResourceBundle的设计原理

时间:2023-04-03 00:38:52 HTML

按照Jerry文章介绍的代码,运行后,给sap.ui.model.type.Currency类型的字段设置一个非数值,并触发数据类型内置数据校验机制,显示Enteranumber错误信息。SAPUI5应用开发教程四十六——使用MessageManager实现开箱即用的验证(Validation)信息抛出本文介绍了Enteranumber文本的数据源。进入时:sap.ui.define导致加载ResourceBundle:资源包是*.properties文件的集合。所有文件都以相同的基本名称(标识资源包的前缀)、标识每个文件中包含的语言的可选后缀以及固定的.properties扩展名命名。语言后缀是根据旧的JDK语言环境语法形成的。按照惯例,文件应该没有语言后缀,并且包含开发人员语言的原始未翻译文本。如果找不到更合适的语言,则使用此文件。当需要本地化文本时,应用程序使用SAPUI5API加载与当前语言最匹配的属性文件。这同样适用于任何其他可以表示为字符串的本地化数据,例如日期格式字符串。要从属性文件中检索文本,应用程序使用(与语言无关的)键。如果没有找到该键的文本,则加载下一个最佳匹配文件并检查文本。最后,如果没有文件匹配,则加载并检查原始文件。执行sap/m/ListItemBase.js模块的加载:ListItemBase.js中需要读取编辑图标的url,从而触发ResourceBundle的加载:ListItemBase.prototype.DetailIconURI=IconPool.getIconURI("edit");然后触发CoreResourceBundleLoad的加载:if(typeofinfo==='number'){mRegistry[collectionName][iconName]=undefined;//避免重复图标警告info=_IconRegistry.addIcon(iconName,collectionName,{fontFamily:mFontRegistry[collectionName].config.fontFamily,content:info&0xFFFF,suppressMirroring:!!(info&0x10000),resourceBundle:getCoreResourceBundle()});}加载代码://延迟加载核心资源包函数getCoreResourceBundle(){if(!oCoreResourceBundle){oCoreResourceBundle=sap.ui.getCore().getLibraryResourceBundle("sap.ui.core");}返回oCoreResourceBundle;}最后获取资源包的完整url:https://sapui5.hana.ondemand....在浏览器地址栏输入上面的url访问,获取资源包的完整内容:回车ResourceBundle中还包含一个数字。原型.getText: