当前位置: 首页 > news >正文

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

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

// 新增
  @action.bound
  async 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);
        }
    }

相关文章:

  • 嵌入式八股C语言---面向对象篇
  • Linux多进程学习
  • 【JavaWeb学习Day25】
  • Java 大视界 -- Java 大数据在智能安防视频摘要与检索技术中的应用(128)
  • 1.8 双指针专题:四数之和
  • 销售易CRM:赋能企业销售与客户管理的数字化升级
  • 小凯的疑惑(数论 )
  • LeetCode-122. 买卖股票的最佳时机 II
  • latex问题汇总
  • neo4j图数据库
  • 轻量级模块化前端框架:快速构建强大的Web界面
  • C++- 基于多设计模式下的同步异步日志系统
  • 交换机、路由器、网关、MAC地址——从入门到实战
  • 地基注解@Controller和@RestController区别
  • shiro反序列化漏洞-简述
  • 机试准备第15天
  • 办公常用自动化工具
  • 西瓜书简单笔记
  • 操作系统学习笔记-进程调度篇
  • 在线Doc/Docx转换为PDF格式 超快速转换的一款办公软件 文档快速转换 在线转换免费转换办公软件
  • 中国社联成立95周年,《中国社联期刊汇编》等研究丛书出版
  • 最高检公布一起离婚纠纷典型案例:推动离婚经济补偿制度落实
  • 河南信阳:对违规吃喝问题不遮丑不护短,露头就打、反复敲打
  • “家国万里时光故事会” 举行,多家庭共话家风与家国情怀
  • 董军在第六届联合国维和部长级会议上作大会发言
  • 上海市重大工程一季度开局良好,多项生态类项目按计划实施