泛微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开发 编写前端请求后端接口方法以及编写后端接口_泛微后端接口文档-优快云博客https://blog.youkuaiyun.com/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);
        }
    }

<think>嗯,用户想了解eCode的功能开发方法或教程,还有API文档。首先,我需要确认用户提到的eCode是否指的是的E-CODE开发平台。根据提供的引用内容,引用[1]提到了E-CODE的开发资料仓库,里面有详细的开发文档,这可能是一个关键点。 用户可能需要的是具体的步骤或者资源链接,但问题在于如何引导他们找到正确的资料。引用[1]提到开发文档包括流程、技术规范和常见问题,所以应该先推荐他们访问这个仓库。另外,引用[3]中提到了后端拦截接口的方法,这可能涉及到API的使用,所以需要提及API文档的位置,可能在E-CODE或Ecology9的文档中。 然后,用户可能想知道如何开始学习,比如是否需要编程基础。引用[3]指出需要Java基础,所以在回答中应该提到这一点。同时,培训资料和示例代码也很重要,用户可能需要实践指导,所以需要提到下载资源文件并按编号学习。 另外,用户可能不清楚API接口的具体内容,引用[2]提到Ecology9有丰富的API和工具,支持多种语言,这部分信息应该整合进来,说明API文档的位置和如何获取。 还要考虑用户是否有权限访问这些资料,可能需要内部账号或者联系管理员,所以在注意事项里提醒他们确认权限。最后,用户可能需要进一步的帮助,所以提供联系支持的方式,如引用中的联系我们部分。 总结一下,回答需要分步骤:获取开发文档、学习技术规范、参考API、实践项目、培训资料、注意事项。每个部分对应不同的引用内容,确保信息准确且有依据。同时,生成的相关问题要围绕可能遇到的后续疑问,比如环境搭建、调试方法、最佳实践和接口集成,这样用户可以有更深入的了解方向。</think>### eCode功能开发方法与教程 #### 1. **开发文档与资源获取** - **E-CODE开发资料仓库**是核心学习资源,包含开发流程、技术规范、API说明及常见问题解答。建议通过内部平台访问该仓库,下载最新文档[^1]。 - **API文档**位于Ecology9的开发者中心,支持RESTful接口和SOAP协议,覆盖表单操作、流程引擎、数据查询等功能模块[^2]。 #### 2. **开发环境搭建** - 安装E-CODE开发工具包(需企业账号权限),配置Java 11+和Maven环境。 - 示例代码结构: ```java // 表单数据提交接口调用示例 public class FormService { public void submitFormData(FormData data) throws ECodeException { ECodeClient client = new ECodeClient("https://api.weaver.com"); client.setAuthToken("your_token"); client.post("/api/form/submit", data); } } ``` #### 3. **核心功能开发** - **表单定制**:通过XML定义字段布局,使用`FormDesigner`类动态渲染逻辑[^2]。 - **流程拦截**:实现`ProcessInterceptor`接口,在`preHandle`方法中修改流程变量[^3]。 - **数据集成**:调用`DataSyncAPI`实现与SAP、HR系统的定时同步。 #### 4. **调试与部署** - 使用E-CODE模拟器本地测试流程逻辑。 - 通过`ecode deploy`命令打包插件,在Ecology9管理后台上传扩展模块。 #### 5. **高级技巧** - 性能优化:对高频接口添加Redis缓存注解`@CacheResult` - 安全规范:敏感操作必须调用`SecurityUtils.validatePermission()`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值