泛微ecode的页面开发发送请求参数携带集合

ops/2025/3/15 19:57:38/

1.在开发过程中我们难免遇见会存在需要将集合传递到后端的情况,那么这里就有一些如下的注意事项,如以下代码:

// 新增@action.boundasync addQuestion(formData) {var theList = this.questionAnswerList;var questionAnswerListArray = new Array();for(var i=0;i<theList.length;i++){if(theList[i]){questionAnswerListArray.push(toJS(theList[i]));}}const updateFormData = {...formData,questionAnswerList:JSON.stringify(questionAnswerListArray),}const res = await WeaTools.callApi("/api/question/submit", "POST", updateFormData,"json");if (res.code === "1") {message.success(res.message);this.fetchDataDialog();} else {message.error(res.message);}}

我们要对页面所存存储的集合对象进行toJS的操作,因为我们这里用的是@action,他会自动对应页面对象中的数据修改,但是这种对象例如集合是前端独有的数据类型,后端是没有这种数据进行接收的,所以如果不进行toJS操作,并且将集合转为JSON字符串,那么后端接收到的很有可能就是’Object object'的这种字符串;通过以上操作才能将集合转为我们需要的JSON字符串,然后在后端,我们可以通过 String demoJson = (String) stringObjectMap.get("demoList");
                List<Demo> demoList = JSON.parseObject(demoJson, new TypeReference<List<Demo>>() {});解析为我们需要的集合。

2.这是一个前后端接口的一些方法和操作,具体的可以看看:里面有POST、GET的具体实现泛微e9开发 编写前端请求后端接口方法以及编写后端接口_泛微后端接口文档-CSDN博客https://blog.csdn.net/Liron_wg/article/details/144161262

这里需要注意的因为ecology的版本有可能不同,里面的get传递参数和后端获取参数有一些差异;博主这里使用上面的get操作,按照他提供的传参和获取参数是无法获取到的。 所以博主这里提供另外一种方法来获取参数:

const url = new URL('/api/test/testExport', window.location.origin);url.searchParams.append('userId', this.userId);url.searchParams.append('departId', this.departId);url.searchParams.append('examId', this.examId);// 使用 GET 请求fetch(url, {method: 'GET',headers: {'Content-Type': 'application/json',  // 不需要设置 Content-Type,因为是 GET 请求},}).then(response => {console.log(response);})
    @Path("/testExport")@GET@Produces(MediaType.APPLICATION_OCTET_STREAM)public String testExport(@Context HttpServletRequest request, @Context HttpServletResponse response) {try {String userId = Util.null2String(request.getParameter("userId"));String departId = Util.null2String(request.getParameter("departId"));String examId = Util.null2String(request.getParameter("examId"));// 获取当前用户的信息User user = HrmUserVarify.getUser(request, response);Map<String,Object> resultMap =new HashMap<>();resultMap.put("code","1");resultMap.put("message","成功!");return JSONObject.toJSONString(resultMap);} catch (Exception e) {Map<String,Object> resultMap =new HashMap<>();resultMap.put("code","0");resultMap.put("message","失败!");return JSONObject.toJSONString(resultMap);}}


http://www.ppmy.cn/ops/166025.html

相关文章

【C++】每日一练(链表的中间结点)

本篇博客给大家带来的是用C语言来解答找中间结点&#xff01; &#x1f41f;&#x1f41f;文章专栏&#xff1a;每日一练 &#x1f680;&#x1f680;若有问题评论区下讨论&#xff0c;我会及时回答 ❤❤欢迎大家点赞、收藏、分享&#xff01; 今日思想&#xff1a;不服输的…

MyBatis 如何解析 XML 配置文件和 SQL 映射文件

MyBatis 使用 SAX&#xff08;Simple API for XML&#xff09;解析器来解析 XML 文件&#xff0c;SAX 是一种基于事件驱动的 XML 解析方式&#xff0c;具有高效、低内存消耗的优点。 MyBatis 主要解析两种类型的 XML 文件&#xff1a; 核心配置文件 (mybatis-config.xml): 定…

python 基于混合式推荐算法的学术论文投稿系统

基于混合式推荐算法的学术论文投稿系统是一个结合多种推荐技术&#xff08;如基于内容的推荐、协同过滤、知识图谱等&#xff09;来为研究者推荐合适期刊或会议投稿的系统。以下是实现该系统的关键步骤和Python代码示例。 系统设计思路 1. 数据收集与预处理&#xff1a; - 收…

15.使用读写包操作Excel文件:OpenPyXL 包

一 OpenPyXL 和 XlsxWriter 想写入 xlsx 或者 xlsm 文件&#xff0c;就需要在 OpenPyXL 和 XlsxWriter 中做出选择。 OpenPyXL 既可以读也可以写 Excel 文件的包。可以用它来编辑一些简单的Excel 文件。 XlsxWriter 使用的是从 0 开始的单元格索引&#xff0c; 而 OpenPyXL 使用…

【论文笔记】Contrastive Learning for Compact Single Image Dehazing(AECR-Net)

文章目录 问题创新网络主要贡献Autoencoder-like Dehazing NetworkAdaptive Mixup for Feature PreservingDynamic Feature Enhancement1. 可变形卷积的使用2. 扩展感受野3. 减少网格伪影4. 融合空间结构信息 Contrastive Regularization1. 核心思想2. 正样本对和负样本对的构建…

MVCC实现原理

一、引言 在现代数据库管理系统中&#xff0c;数据的一致性和并发性是两个至关重要的特性。传统的锁机制虽然有效&#xff0c;但也存在着性能瓶颈&#xff0c;特别是在高并发环境下&#xff0c;锁的争用会导致系统响应时间变慢&#xff0c;甚至引发死锁等问题。为了克服这些挑…

Microsoft Dragon Copilot:医疗AI革命开启,用语音终结手写病历时代

微软正式发布全球首个医疗行业一体化语音AI助手Microsoft Dragon Copilot,标志着临床工作流程正式迈入“人机协作”新时代。这款工具通过语音+文本混合架构,将医生口述内容实时转化为结构化病历,并深度整合电子健康记录(EHR)系统,彻底颠覆了传统手写病历模式。根据微软官…

使用Python编写网络爬虫:从入门到实践

引言 在当今信息爆炸的时代&#xff0c;互联网上充斥着海量的数据。如何高效地从这些数据中提取出有用的信息&#xff0c;成为了许多开发者和数据分析师面临的挑战。Python作为一种功能强大且易于学习的编程语言&#xff0c;提供了丰富的库和工具来帮助我们编写网络爬虫&#x…