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 路由框架的实现原理,做出了深入的分析。

相关文章
|
1月前
|
存储 JSON NoSQL
解锁JSON的奇妙世界:从基础到高级应用,一文搞懂JSON的妙用(下)
解锁JSON的奇妙世界:从基础到高级应用,一文搞懂JSON的妙用(下)
|
5天前
|
JSON 资源调度 Kubernetes
实时计算 Flink版操作报错合集之解析JSON数组时,遇到报错,该怎么解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
18天前
|
JSON JavaScript 数据格式
1.js动态的往json数据添加新属性和值 2.JSON 和 JS 对象互转 3.对象转化为数组
1.js动态的往json数据添加新属性和值 2.JSON 和 JS 对象互转 3.对象转化为数组
18 0
|
1月前
|
XML JSON API
转Android上基于JSON的数据交互应用
转Android上基于JSON的数据交互应用
19 1
|
1月前
|
存储 JSON DataWorks
DataWorks产品使用合集之DataWorks将 MongoDB 中的数组类型写入到 DataWorks 的单个字段时,表示为字符串格式而非 JSON 格式如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
32 3
|
1月前
|
SQL JSON 监控
实时计算 Flink版产品使用合集之直接将 JSON 字符串解析为数组的内置函数如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
1月前
|
JSON 编译器 Go
Golang深入浅出之-结构体标签(Tags):JSON序列化与反射应用
【4月更文挑战第22天】Go语言结构体标签用于添加元信息,常用于JSON序列化和ORM框架。本文聚焦JSON序列化和反射应用,讨论了如何使用`json`标签处理敏感字段、实现`omitempty`、自定义字段名和嵌套结构体。同时,通过反射访问标签信息,但应注意反射可能带来的性能问题。正确使用结构体标签能提升代码质量和安全性。
49 0
|
1月前
|
XML JSON JavaScript
Java中XML和JSON的比较与应用指南
本文对比了Java中XML和JSON的使用,XML以自我描述性和可扩展性著称,适合结构复杂、需验证的场景,但语法冗长。JSON结构简洁,适用于轻量级数据交换,但不支持命名空间。在Java中,处理XML可使用DOM、SAX解析器或XPath,而JSON可借助GSON、Jackson库。根据需求选择合适格式,注意安全、性能和可读性。
44 0
|
1月前
|
Web App开发 数据采集 前端开发
纯技术讨论:如何让 SAP UI5 应用无法被别人在浏览器里调试 - 这种做法不推荐试读版
纯技术讨论:如何让 SAP UI5 应用无法被别人在浏览器里调试 - 这种做法不推荐试读版
|
1月前
|
XML 存储 数据格式
SAP UI5 控件 customData 属性的应用介绍
SAP UI5 控件 customData 属性的应用介绍