Ecode前后端传值

说明

在泛微 E9 系统开发过程中,使用 Ecode 调用后端接口并进行传值是极为常见且关键的操作。在上一篇文章中,我们探讨了 Ecode 调用后端代码的相关内容,本文将深入剖析在 Ecode 中如何向后端传值,以及后端又该如何处理接收这些值

GET请求传参

前端传参

这种方式是将参数直接嵌入到请求的 URL 路径中。例如,假设我们现在要将前端的requestId传给接口,可以参考以下代码

javascript 复制代码
getNodeReason(){
        var requestId = WfForm.getBaseInfo().requestid;
        // console.log("输出对应的请求Id" + requestId);
        WeaTools.callApi(`http://IP:PORT/api/workflow/test/getRequestId?requestId=${requestId}`, 'get', {
            _time: Date.now()
        }).then((data) => {
            console.log(data);
            // 直接使用 data 数组,无需进行 JSON 解析
            this.setState({
              getRequestInfo: data
            }, () => {
                console.log(this.state.getRequestInfo);
            });
            
           
        });
    }

在这里需要注意的就是对应的URL需要用反引号进行标注,这样才好将上面查到的requestId变量进行传输

后端如何接收参数

java 复制代码
@GET
@Path("/getRequestId")
@Produces(MediaType.TEXT_PLAIN)
public String getRequestInfo(@QueryParam("requestId") String requestId){
    //输出接收到的参数(如果没有配置log的话,也可以通过System.out.println()来进行输出)
    this.log.info("获取接口方法getNodeReason传递的参数requestId"+requestId);
   
    
}

在后端中非常需要注意的一点就是这个@QueryParam注解括号里面写的名称必须和前端传递的参数名称一致才行

截图展示:

POST请求

前端传参

在前端使用 POST 请求时,我们需要将参数封装在请求体中,并设置正确的请求头

javascript 复制代码
getData() {
  const data = {
    name: "John1",
    age: 25
  };

  fetch('http://IP:PORT/api/workflow/test/getInfo2', {//IP:PORT输入对应的服务器地址以及对应的端口号就行
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(data)
  })
    .then(response => response.json())
    .then(data => {
      this.setState({
        jsonData: data
      }, () => {
        console.log(this.state.jsonData);
        console.log("输出姓名值" + this.state.xm);
      });
    })
    .catch(error => {
      console.error('请求出错:', error);
    });
}

后端接收处理

需要注意的是,需要用一个实体类来接收参数;实体类中需要注明所有传递的内容

java 复制代码
@Path("/workflow/test")
public class EcodeTestActionWorkflow {
    @POST
    @Path("/getInfo2")
    @Produces(MediaType.APPLICATION_JSON)
    @Consumes(MediaType.APPLICATION_JSON)
    public String test(UserData userData) {
        JSONObject json = new JSONObject();
        json.put("age", userData.getAge());
        json.put("name", userData.getName());
        json.put("username", "cccc");
        json.put("test", "test4");
        return json.toString();
    }
}

实体类如下:根据上面前端传参确定参数是age和name;这个实体类需要包含前端传递的所有参数对应的变量,以及它们的gettersetter方法,确保后端能够顺利接收并处理这些参数。

java 复制代码
public class UserData {
		 private String name;
		 private int age;
		 // Getter and Setter methods
	    public String getName() { return name; }
	    public void setName(String name) { this.name = name; }
	    public int getAge() { return age; }
	    public void setAge(int age) { this.age = age; }

}

截图展示:

相关推荐
泛微OA办公系统3 个月前
高校数字化运营平台解决方案:构建统一的服务大厅、业务平台、办公平台,助力打造智慧校园
智慧校园·泛微·高校数字化运营平台·行政办公·高校运营·校园服务·统一高校
泛微OA办公系统4 个月前
【新政】国家档案局令第22号:《电子档案管理办法》将于11月1日施行,明确要求档案业务全流程管理
泛微·档案管理·《电子档案管理办法》
Wninacc4 个月前
泛微Ecology9集成接口开发案例及代码详解
windows·泛微·oa·泛微e10·泛微10大专项·泛微e9
SAP Hua6 个月前
泛微E9如何更新缓存
泛微oa
SuperherRo7 个月前
【漏洞复现】泛微E-Cology WorkflowServiceXml SQL注入漏洞
sql·泛微oa
雨落星辰C8 个月前
泛微E9技术网站
泛微oa
一个程序员_zhangzhen9 个月前
泛微OA调用发送消息接口 .Net C#示例
c#·.net·泛微oa
大美B端工场-B端系统美颜师9 个月前
发现没:随便搞个B端页面,就想在客户那里过关,难啦。
oa·b端系统·b端界面
大美B端工场-B端系统美颜师9 个月前
OA界面这么香吗?总有老铁私信,让我多发点,他好参考。
oa·oa系统·b端系统