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

Ecode前后端传值

说明

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

GET请求传参

前端传参

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

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变量进行传输

后端如何接收参数

@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 请求时,我们需要将参数封装在请求体中,并设置正确的请求头

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);});
}

后端接收处理

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

@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方法,确保后端能够顺利接收并处理这些参数。

public class UserData {private String name;private int age;// Getter and Setter methodspublic 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; }}

截图展示:

http://www.lryc.cn/news/543650.html

相关文章:

  • 【Linux】进程状态(二)
  • domain 网络安全 网络安全域
  • 链表和STL —— list 【复习笔记】
  • Java Map实现类面试题
  • 技术架构和工程架构区别
  • 简单介绍JVM
  • 纷析云:赋能企业财务数字化转型的开源解决方案
  • DeepSeek开源周第二弹:DeepEP如何用RDMA+FP8让MoE模型飞起来?
  • NLP学习记录十:多头注意力
  • 【MySql】EXPLAIN执行计划全解析:15个字段深度解读与调优指南
  • 论文笔记(七十二)Reward Centering(五)
  • Linux内核自定义协议族开发指南:理解net_device_ops、proto_ops与net_proto_family
  • SOME/IP-SD -- 协议英文原文讲解6
  • 【数据处理】COCO 数据集掩码 Run-Length Encoding (RLE) 编码转二进制掩码
  • Java中的缓存技术:Guava Cache vs Caffeine vs Redis
  • Day8 蓝桥杯acw讲解
  • 《Operating System Concepts》阅读笔记:p147-p158
  • JSON Schema 入门指南:如何定义和验证 JSON 数据结构
  • java后端开发day20--面向对象进阶(一)--static继承
  • FastJSON 默认行为:JSON.toJSONString 忽略 null 字段
  • 数据结构:基数排序(c++实现)
  • DOM 事件 HTML 标签属性速查手册
  • PhotoShop学习01
  • mongodb【实用教程】
  • C语言机试编程题
  • threeJs+vue 轻松切换几何体贴图
  • Android ObjectBox数据库使用与集成指南
  • 【HarmonyOS Next】地图使用详解(一)
  • seacmsv9注入管理员账号密码+orderby+limi
  • C#与AI的交互(以DeepSeek为例)