news 2026/4/18 7:06:56

SAPUI5 1.71.78老版本的消费restful服务

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SAPUI5 1.71.78老版本的消费restful服务

为了兼容老浏览器,没用Javascript的现代fetch api,用的jquery

controller.js代码如下

sap.ui.define([ "sap/ui/core/mvc/Controller", "sap/ui/model/json/JSONModel", "sap/m/MessageToast" ], function (Controller, JSONModel, MessageToast) { "use strict"; return Controller.extend("zfiori_stock.controller.StockList", { onInit: function () { // 初始化stock模型 var oStockModel = new JSONModel([]); this.getView().setModel(oStockModel, "stock"); }, /** * 重置查询条件并清空表格数据 */ _resetQuery: function () { this._clearInputs(); // 清空表格数据 var oStockModel = this.getView().getModel("stock"); oStockModel.setData({}); MessageToast.show("查询条件已重置"); }, /** * 清空所有输入框 */ _clearInputs: function () { this.getView().byId("werksInput").setValue(""); this.getView().byId("matnrInput").setValue(""); this.getView().byId("chargInput").setValue(""); this.getView().byId("lgortInput").setValue(""); }, /** * 获取库存数据 * 兼容Android 8平台的老浏览器 */ _fetchStockData: function () { // 后端API信息 var sUrl = "/api/zbakpda?ACTION=GET_STOCK"; // 从输入框获取查询条件 var oRequestData = { "werks": this.getView().byId("werksInput").getValue(), "matnr": this.getView().byId("matnrInput").getValue(), "charg": this.getView().byId("chargInput").getValue(), "lgort": this.getView().byId("lgortInput").getValue() }; // 显示加载提示 MessageToast.show("正在查询数据..."); // 使用jQuery.ajax以兼容老浏览器 jQuery.ajax({ url: sUrl, type: "POST", data: JSON.stringify(oRequestData), headers: { "Content-Type": "application/json", "Accept-Language": "zh" // "Authorization": sAuthHeader }, // 兼容老浏览器的参数设置 dataType: "json", xhrFields: { withCredentials: true }, timeout: 30000, //通过 jQuery.proxy(fn, this),强制绑定了函数执行时的 this 上下文为当前控制器。 success: jQuery.proxy(function (oData) { // 将返回数据绑定到stock模型 var oStockModel = this.getView().getModel("stock"); if (oStockModel) { if (oData.length != 0) { MessageToast.show("库存数据获取成功"); } else { MessageToast.show("返回数据为空"); } oStockModel.setData(oData); } }, this), error: jQuery.proxy(function (xhr, status, error) { console.error("获取库存数据失败:", error); console.error("状态码:", xhr.status); // 友好的错误提示 var sErrorMessage = "获取库存数据失败"; if (xhr.status === 401) { sErrorMessage = "认证失败,请检查账号密码"; } else if (xhr.status === 404) { sErrorMessage = "服务器地址错误"; } else if (xhr.status === 500) { sErrorMessage = "服务器内部错误"; } MessageToast.show(sErrorMessage); }, this) }); } }); });

xml视图代码

<mvc:View controllerName="zfiori_stock.controller.StockList" xmlns="sap.m" xmlns:l="sap.ui.layout" xmlns:mvc="sap.ui.core.mvc"> <Panel class="sapUiResponsiveContentPadding"> <headerToolbar> <Toolbar> <Button text="查询" press="_fetchStockData" icon="sap-icon://search" class="sapUiSmallMarginEnd" /> <Button text="重置" press="_resetQuery" icon="sap-icon://refresh" /> </Toolbar> </headerToolbar> <l:Grid defaultSpan="L6 M6 S6" class="sapUiResponsiveMargin" vSpacing="1"> <l:content> <!-- 工厂 --> <FlexBox class="sapUiTinyMarginBottom" alignItems="Center"> <Label text="工厂:" labelFor="werksInput" width="80px" /> <Input id="werksInput" width="100%" /> </FlexBox> <!-- 库存地点 --> <FlexBox class="sapUiTinyMarginBottom" alignItems="Center"> <Label text="库存地点:" labelFor="lgortInput" width="80px" /> <Input id="lgortInput" width="100%" /> </FlexBox> <!-- 物料 --> <FlexBox class="sapUiTinyMarginBottom" alignItems="Center"> <Label text="物料:" labelFor="matnrInput" width="80px" /> <Input id="matnrInput" width="100%" /> </FlexBox> <!-- 批次 --> <FlexBox class="sapUiTinyMarginBottom" alignItems="Center"> <Label text="批次:" labelFor="chargInput" width="80px" /> <Input id="chargInput" width="100%" /> </FlexBox> </l:content> </l:Grid> <Table id="stockList" class="sapUiResponsiveMargin" width="100%" items="{ path : 'stock>/' }" noDataText="暂无数据"> <columns> <Column minScreenWidth="Phone" demandPopin="true" hAlign="Left"> <Text text="物料编码" /> </Column> <Column minScreenWidth="Phone" demandPopin="true" hAlign="Left"> <Text text="物料描述" /> </Column> <Column minScreenWidth="Tablet" demandPopin="true"> <Text text="工厂" /> </Column> <Column minScreenWidth="Tablet" demandPopin="true"> <Text text="库存地点" /> </Column> <Column minScreenWidth="Tablet" demandPopin="true"> <Text text="库存地点名称" /> </Column> <Column minScreenWidth="Tablet" demandPopin="true"> <Text text="批次" /> </Column> <Column minScreenWidth="Tablet" demandPopin="true"> <Text text="库存数量" /> </Column> <Column minScreenWidth="Tablet" demandPopin="true"> <Text text="单位" /> </Column> </columns> <items> <ColumnListItem> <cells> <Text text="{stock>matnr}" /> <Text text="{stock>maktx}" /> <Text text="{stock>werks}" /> <Text text="{stock>lgort}" /> <Text text="{stock>lgobe}" /> <Text text="{stock>charg}" /> <Text text="{stock>clabs}" /> <Text text="{stock>meins}" /> </cells> </ColumnListItem> </items> </Table> </Panel> </mvc:View>

ui5.yaml配置代理,解决cors跨域

specVersion: "4.0" metadata: name: zfiori_stock type: application server: customMiddleware: - name: ui5-middleware-simpleproxy afterMiddleware: compression mountPath: /api configuration: baseUri: "http://后端ip:port" preserveHostHeader: true ignoreCertErrors: true headers: X-Requested-With: XMLHttpRequest
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 2:24:20

Python安装环境配置避坑指南:优先配置清华源再装TensorFlow

Python安装环境配置避坑指南&#xff1a;优先配置清华源再装TensorFlow 在人工智能项目启动阶段&#xff0c;你是否经历过这样的场景&#xff1f;刚配好Python环境&#xff0c;信心满满地敲下 pip install tensorflow&#xff0c;结果进度条卡在10%整整半小时&#xff0c;最终…

作者头像 李华
网站建设 2026/4/18 4:03:39

Mini2440 启动流程分析

Mini2440是一块非常经典的入门开发板。本文将讲透这张启动图背后的概念。 上电启动 一切始于电平。在 S3C2440 芯片上&#xff0c;有两个特殊的引脚&#xff1a;OM0 和 OM1。当然一般都是用的开关就实现了&#xff08;图右下角&#xff09;。 当系统复位&#xff08;Reset&…

作者头像 李华
网站建设 2026/4/18 3:59:58

如何通过清华镜像快速安装TensorFlow?Python开发者必看

如何通过清华镜像快速安装 TensorFlow&#xff1f;Python 开发者必看 在人工智能项目开发中&#xff0c;最让人焦躁的瞬间之一&#xff0c;莫过于在终端敲下 pip install tensorflow 后&#xff0c;眼睁睁看着进度条卡在“Collecting”状态&#xff0c;几分钟后抛出一个 ReadTi…

作者头像 李华
网站建设 2026/4/18 4:01:24

自动驾驶—CARLA仿真(24)sensor_synchronization demo

&#x1f4cc; 测试用例 PythonAPI/examples/sensor_synchronization.py 多传感器同步采集的底层实现示例&#xff0c;用于&#xff1a; 演示 CARLA 同步模式下多传感器数据对齐的原理提供线程安全的传感器数据收集机制验证所有传感器是否在每帧都成功返回数据 适用于 理解 CAR…

作者头像 李华
网站建设 2026/4/18 4:03:33

springboot图书馆预约与占座hsg小程序hx0829程序--论文hsg

文章目录具体实现截图主要技术与实现手段关于我本系统开发思路java类核心代码部分展示结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;具体实现截图 同行可拿货,招校园代理 springboot图书馆预约与占座hsg小程序hx0829程序–论文hs…

作者头像 李华
网站建设 2026/4/18 4:01:07

计算机网络原理自考笔记与真题解析

计算机网络原理自考笔记与真题解析 最新AI技术资料 : https://github.com/Eished/self-study-exam_notes Wan2.2-T2V-5B 镜像 镜像地址&#xff1a;https://huggingface.co/collections/aliyun-wanx/wanx-t2v-673184f09b0c17e2a0d83114 开发者&#xff1a;阿里云通义实验室 模型…

作者头像 李华