SAP UI5 应用 manifest.json 文件里 Routes 数组元素的相对顺序,不可忽视的试读版

简介: SAP UI5 应用 manifest.json 文件里 Routes 数组元素的相对顺序,不可忽视的试读版

本教程第 77 篇文章发表之后,一位学习非常仔细的朋友发现了一个问题:

  • SAP UI5 应用开发教程之七十七 - SAP UI5 动态页面路由的高级用法:路由记录 routes 和 target 的一对多关系


Hi,Jerry,我在复刻这个篇章的代码的时候遇到了一个问题:在mainfest.json文件中配置routes时,若把该篇的新的路由路径写在最后,点击Home对应的按钮会跳转到Employee视图去,但是浏览器上的路由路径又是正确的,相关的原因和原理可以讲讲吗?

07e78447e3a4699490648c7a24645546.png


简要回顾步骤 77 完成的开发内容


在步骤 77,我们在 UI 上增添了一个新按钮:

aa4a012004cbc102b2257befa715e6fc.png

这个按钮的事件响应函数:this.getRouter().navTo("employeeOverview")

58e6ac389c6d376a2e94bd162d3c5bfe.png

这个 navTo 方法的输入参数 employeeOverview,定义在 manifest.json 的 routes 区域里,位于第 85 行的 employees 记录之后。

942ea5cb7a9bce6d0b732f56b80fdddd.png

点击 Show Employees Overview 按钮之后,SAP UI5 路由框架从 manifest.json 文件 routes 区域解析出的记录里,找到路由 target,即上图高亮区域所示的配置信息,然后按照下图所示的顺序加载三个对应的 XML 视图文件:

445d276ce2da044d5dd6d990ff4dc917.png

最后完成页面渲染:

431f02a22afa09716f496a536fc34fd0.png


这位朋友遇到的问题


如果故意把步骤 77 新添加的 routes 数组里的元素,不放在正确的如图例 1 所示的位置,即位于 employeeList 这条记录之后,而是作为最后一条记录,放在 routes 末尾,如下图所示:

e5586e1b3f809cbfa4e87b7af777ec3f.png

为了不影响步骤 77 的学习,我把文件夹 77 拷贝了一份出来,重命名成 77-A,然后将上图的改动,实现在了 77-A 文件夹的 manifest.json 里面。

在 77-A 文件夹里执行命令行 ui5 serve, 点击 Show Employee Overview 按钮,会发生什么事情?

我们会观察到,SAP UI5 界面短暂显示了 Employee 的明细页面,即 Employee.view.xml 文件里的内容。

c6cee4f4a8e73ff1f7aa14e77a5b79f8.png

最后显示的内容变成了 404 Not found

b8906f43ad81d3d4e61d1efc40924f09.png

依次加载的 XML 视图文件如下:

7f7654a9c882aaefd674fcfa24e9670c.png

为什么会出现这种奇怪的现象?

本文通过 SAP UI5 路由框架的实现原理,做出了深入的分析。

相关文章
|
2月前
|
存储 SQL JSON
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
|
2月前
|
JSON Java Android开发
Android 开发者必备秘籍:轻松攻克 JSON 格式数据解析难题,让你的应用更出色!
【8月更文挑战第18天】在Android开发中,解析JSON数据至关重要。JSON以其简洁和易读成为首选的数据交换格式。开发者可通过多种途径解析JSON,如使用内置的`JSONObject`和`JSONArray`类直接操作数据,或借助Google提供的Gson库将JSON自动映射为Java对象。无论哪种方法,正确解析JSON都是实现高效应用的关键,能帮助开发者处理网络请求返回的数据,并将其展示给用户,从而提升应用的功能性和用户体验。
50 1
|
2月前
|
JSON 数据格式 Java
化繁为简的魔法:Struts 2 与 JSON 联手打造超流畅数据交换体验,让应用飞起来!
【8月更文挑战第31天】在现代 Web 开发中,JSON 成为数据交换的主流格式,以其轻量、易读和易解析的特点受到青睐。Struts 2 内置对 JSON 的支持,结合 Jackson 库可便捷实现数据传输。本文通过具体示例展示了如何在 Struts 2 中进行 JSON 数据的序列化与反序列化,并结合 AJAX 技术提升 Web 应用的响应速度和用户体验。
77 0
|
2月前
|
JSON 前端开发 JavaScript
php中JSON或数组到formData的键值对转换
转换JSON或数组到formData格式的键值对并不复杂。PHP的 `json_decode()`与 `http_build_query()`是实现这一转换过程的关键函数。理解这个转换过程对于开发中处理各种AJAX请求时调整数据格式至关重要。这样,无论是处理来自客户端的JSON字符串,还是服务器端的数组数据,都能够灵活地转换为适合网络传输的格式,确保数据交换的顺畅和高效。
59 4
|
2月前
|
SQL JSON 关系型数据库
"SQL老司机大揭秘:如何在数据库中玩转数组、映射与JSON,解锁数据处理的无限可能,一场数据与技术的激情碰撞!"
【8月更文挑战第21天】SQL作为数据库语言,其能力不断进化,尤其是在处理复杂数据类型如数组、映射及JSON方面。例如,PostgreSQL自8.2版起支持数组类型,并提供`unnest()`和`array_agg()`等函数用于数组的操作。对于映射类型,虽然SQL标准未直接支持,但通过JSON数据类型间接实现了键值对的存储与查询。如在PostgreSQL中创建含JSONB类型的表,并使用`->>`提取特定字段或`@>`进行复杂条件筛选。掌握这些技巧对于高效管理现代数据至关重要,并预示着SQL在未来数据处理领域将持续扮演核心角色。
33 0
|
2月前
|
JSON JavaScript 数据格式
Jquery 将 JSON 列表的 某个属性值,添加到数组中,并判断一个值,在不在数据中
Jquery 将 JSON 列表的 某个属性值,添加到数组中,并判断一个值,在不在数据中
58 0
|
2月前
|
前端开发 开发工具 git
|
4月前
|
开发工具 Android开发 开发者
Android `.9.png` 图像是用于UI的可拉伸格式,保持元素清晰度和比例
【6月更文挑战第26天】Android `.9.png` 图像是用于UI的可拉伸格式,保持元素清晰度和比例。通过边上的黑线定义拉伸区域,右下角黑点标识内容区域,适应文本或组件大小变化。常用于按钮、背景等,确保跨屏幕尺寸显示质量。Android SDK 提供`draw9patch.bat`工具来创建和编辑。**
235 6
|
4月前
|
JSON 关系型数据库 MySQL
MySQL中GROUP_CONCAT与JSON_OBJECT、GROUP BY的巧妙结合:打造高效JSON数组汇总
MySQL中GROUP_CONCAT与JSON_OBJECT、GROUP BY的巧妙结合:打造高效JSON数组汇总
|
3月前
Element UI 表单【详解】-- 表单校验,表单元素排列在一行,常用表单元素等
Element UI 表单【详解】-- 表单校验,表单元素排列在一行,常用表单元素等
99 0

热门文章

最新文章

下一篇
无影云桌面