SAPUI5基础知识4 -应用程序的命名空间(namespace)

1. 什么是Application Namespace?

在SAPUI5中,Application Namespace是一个唯一的标识符,用于区分不同的应用程序和组件。它是一个字符串,通常是公司的网址的反向版本,例如com.sap.myapp。这样可以确保在全球范围内的唯一性,避免了命名冲突。

一个应用程序的namespace定义在manifest.json文件中的sap.app部分的id字段。例如:

{
  "sap.app": {
    "id": "com.sap.myapp",
    ...
  },
  ...
}

2. 命名空间的主要作用

Namespace的主要作用是:

  • 避免命名冲突:由于每个应用程序都有自己的唯一namespace,因此可以避免在全局范围内的命名冲突。

  • 组织代码:Namespace可以帮助我们更好地组织代码,使代码结构更清晰。例如,我们可以按照namespace将代码分为不同的模块或组件

  • 资源加载:SAPUI5使用namespace来确定从哪里加载资源(例如,视图,控制器,国际化文件等)。例如,如果一个视图的名称是com.sap.myapp.view.MyView,SAPUI5就会去com/sap/myapp/view/MyView.view.xml这个路径下加载对应的视图文件。

3. 定义和使用Namespace

结合我前面引导过程文章中的示例程序,让我们具体解释下如何定义和使用namespace。

注意:组成命名空间的元素要以.进行分割。

首先,我们可以看在manifest.json文件中,我们定义了此应用程序的命名空间文zsapui5.test。

{
    "_version": "1.58.0",
    "sap.app": {
        "id": "zsapui5.test"
    }
}

SAPUI5应用程序运行时,会使用资源路径的配置去请求相关的资源文件。默认情况下,资源路径会执行SAPUI5框架的文件夹。但要知道,我们的应用程序并不在框架的文件夹下,因而,我们必须要在配置中指明如何让SAPUI5的运行时环境(runtime)找到我们的应用程序。

我们可以在SAPUI5的引导过程完成这个配置。

让我们在回顾下,我们刚刚是如何配置的引导过程,打开index.html文件。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>My SAPUI5 Test</title>
    <script
    id="sap-ui-bootstrap"
    src="https://sdk.openui5.org/resources/sap-ui-core.js"
    data-sap-ui-theme="sap_horizon"
    data-sap-ui-libs="sap.m"
    data-sap-ui-compatVersion="edge"
    data-sap-ui-async="true"
    data-sap-ui-onInit="module:zsapui5/test/index"
    data-sap-ui-resourceroots='{
        "zsapui5.test": "./"
    }'>
    </script>
</head>
<body>
    <div>Hello World!</div>
</body>
</html>

属性 data-sap-ui-resourceroots需要一个包含命名空间的对象( 物理位置映射)。在此,我们指定了此应用程序的命名空间zsapui5.test, 通过"zsapui5.test": "./"这样的配置,我们告诉SAPUI5内核,zsapui5.test命名空间中的资源位于与index.html相同的文件夹中。

在这个例子中,所有针对 zsapui5.test 这个应用程序的请求都会被重定向到引导程序定义的文件路径,也即zsapui5/test/这个路径下。

文件路径可以是相对于引导程序定义的文件的相对路径或绝对路径。

如下例,如果应用程序需要一个文件,例如 zsapui5.test.controller.MyController,SAPUI5框架则会在命名空间zsapui5/test/controller这个文件夹中去查找MyController文件。

<!-- zsapui5/test/view/MyView.view.xml -->
<mvc:View
  controllerName="zsapui5.test.controller.MyController"
  xmlns:mvc="sap.ui.core.mvc"
  displayBlock="true"
>
  ...
</mvc:View>
// zsapui5/test/controller/MyController.js
sap.ui.define([
  "sap/ui/core/mvc/Controller"
], function(Controller) {
  "use strict";

  return Controller.extend("zsapui5.test.controller.MyController", {
    ...
  });
});

当路径解析时,zsapui5.test.controller.MyController会被解析成zsapui5/test/controller/MyController

3. 小结

本文介绍了SAPUI5应用程序命名空间的概念,命名空间定义在manifest.json文件中的sap.app部分的id字段,通过在SAPUI5程序的引导过程中,指定应用程序的命名空间,可以让SAPUI5框架正确找到我们的应用程序对应的资源。希望本文对你有帮助!

  • 14
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十年铸器

给作者赏杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值