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.pswp.cn/diannao/70966.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/70966.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/70966.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

黑馬Java面試教程_P5_微服務

系列博客目錄 文章目錄 系列博客目錄1.引言2.Spring Cloud2.1 Spring Cloud 5大組件有哪些?面試文稿 2.2 服務注冊和發現是什么意思?Spring Cloud 如何實現服務注冊發現?面試文稿 2.3 我看你之前也用過nacos、你能說下nacos與eureka的區別?面試文稿 2.4 你們項目負載均衡如…

【2025深度學習環境搭建-2】pytorch+Docker+VS Code+DevContainer搭建本地深度學習環境

上一篇文章:【2025深度學習環境搭建-1】在Win11上用WSL2和Docker解鎖GPU加速 先啟動Docker!對文件內容有疑問,就去問AI 一、用Docker拉取pytorch鏡像,啟動容器,測試GPU docker pull pytorch/pytorch:2.5.0-cuda12.4…

Linux驅動開發實戰(一):LED控制驅動詳解

Linux驅動開發野火實戰(一):LED控制驅動詳解 文章目錄 Linux驅動開發野火實戰(一):LED控制驅動詳解引言一、基礎知識1.1 什么是字符設備驅動1.2 重要的數據結構read 函數write 函數open 函數release 函數 二…

Linux上用C++和GCC開發程序實現不同MySQL實例下單個Schema之間的穩定高效的數據遷移

設計一個在Linux上運行的GCC C程序,同時連接兩個不同的MySQL實例,兩個實例中分別有兩個Schema的表結構完全相同,復制一個實例中一個Schema里的所有表的數據到另一個實例中一個Schema里,使用以下快速高效的方法,加入異常…

Redis除了做緩存還能做什么?

Redis 除了作為高性能緩存外,還因其豐富的數據結構和功能,廣泛應用于多種場景。以下是 Redis 的十大核心用途及具體示例: 1. 分布式會話存儲 用途:存儲用戶會話信息(如登錄狀態),實現多服務間共…

JBoltAI_SpringBoot如何區分DeepSeek R1深度思考和具體回答的內容(基于Ollama)?

當我們用Ollama運行DeepSeek R1模型,向它提問時,會發現它的回答里是有think標簽的 如果我們直接將Ollama的回復用于生產環境,肯定是不行的,對于不同的場景,前面輸出的一堆內容,可能并不需要在客戶端展示&a…

MySQL 使用 `WHERE` 子句時 `COUNT(*)`、`COUNT(1)` 和 `COUNT(column)` 的區別解析

文章目錄 1. COUNT() 函數的基本作用2. COUNT(*)、COUNT(1) 和 COUNT(column) 的詳細對比2.1 COUNT(*) —— 統計所有符合條件的行2.2 COUNT(1) —— 統計所有符合條件的行2.3 COUNT(column) —— 統計某一列非 NULL 的記錄數 3. 性能對比3.1 EXPLAIN 分析 4. 哪種方式更好&…

將DeepSeek接入vscode的N種方法

接入deepseek方法一:cline 步驟1:安裝 Visual Studio Code 后,左側導航欄上點擊擴展。 步驟2:搜索 cline,找到插件后點擊安裝。 步驟3:在大模型下拉菜單中找到deep seek,然后下面的輸入框輸入你在deepseek申請的api key,就可以用了 讓deepseek給我寫了一首關于天氣的…

AndroidManifest.xml文件的作用

AndroidManifest.xml文件在Android應用程序中扮演著至關重要的角色。它是應用程序的全局配置文件,提供了關于應用程序的所有必要信息,這些信息對于Android系統來說是至關重要的,因為它決定了應用程序的運行方式和權限要求,確保了應…

Mac本地部署Deep Seek R1

Mac本地部署Deep Seek R1 1.安裝本地部署大型語言模型的工具 ollama 官網:https://ollama.com/ 2.下載Deepseek R1模型 網址:https://ollama.com/library/deepseek-r1 根據電腦配置,選擇模型。 我的電腦:Mac M3 24G內存。 這…

React進階之前端業務Hooks庫(五)

前端業務Hooks庫 Hooks原理useStateuseEffect上述問題useState,useEffect 復用的能力練習:怎樣實現一套React過程中的hooks狀態 & 副作用Hooks原理 不能在循環中、條件判斷、子函數中調用,只能在函數最外層去調用useEffect 中,deps 為空,執行一次useState 使用: imp…

從像素到光線:現代Shader開發的范式演進與性能優化實踐

引言 在實時圖形渲染領域,Shader作為GPU程序的核心載體,其開發范式已從早期的固定功能管線演進為高度可編程的計算單元。本文通過解析關鍵技術案例,結合現代圖形API(如Vulkan、Metal)的特性,深入探討Shade…

(七)消息隊列-Kafka 序列化avro(傳遞)

(七)消息隊列-Kafka 序列化avro(傳遞) 客從遠方來,遺我雙鯉魚。呼兒烹鯉魚,中有尺素書。 ——佚名《飲馬長城窟行》 本文已同步CSDN、掘金平臺、知乎等多個平臺,圖片依然保持最初發布的水印&…

PXE批量網絡裝機與Kickstart自動化安裝工具

目錄 一、系統裝機的原理 1.1、系統裝機方式 1.2、系統安裝過程 二、PXE批量網絡裝機 2.1、PXE實現原理 2.2、搭建PXE實際案例 2.2.1、安裝必要軟件 2.2.2、搭建DHCP服務器 2.2.3、搭建TFTP服務器 2.2.4、掛載鏡像并拷貝引導文件到tftp服務啟動引導文件夾下 2.2.5、編…

【全棧開發】從0開始搭建一個圖書管理系統【一】框架搭建

【全棧開發】從0開始搭建一個圖書管理系統【一】框架搭建 前言 現在流行降本增笑,也就是不但每個人都要有事干不能閑著,更重要的是每個人都要通過報功的方式做到平日的各項工作異常飽和,實現1.5人的支出干2人的活計。單純的數據庫開發【膚淺…

部署Flink1.20.1

1、設置環境變量 export JAVA_HOME/cluster/jdk export CLASSPATH.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jarp #export HIVE_HOME/cluster/hive export MYSQL_HOME/cluster/mysql export HADOOP_HOME/cluster/hadoop3 export HADOOP_CONF_DIR$HADOOP_HOME/etc/hadoop …

【超詳細】神經網絡的可視化解釋

《------往期經典推薦------》 一、AI應用軟件開發實戰專欄【鏈接】 項目名稱項目名稱1.【人臉識別與管理系統開發】2.【車牌識別與自動收費管理系統開發】3.【手勢識別系統開發】4.【人臉面部活體檢測系統開發】5.【圖片風格快速遷移軟件開發】6.【人臉表表情識別系統】7.【…

深入了解 Python 中的 MRO(方法解析順序)

文章目錄 深入了解 Python 中的 MRO(方法解析順序)什么是 MRO?如何計算 MRO?C3 算法的合并規則C3 算法的合并步驟示例:合并過程解析 MRO 解析失敗的場景使用 mro() 方法查看 MRO示例 1:基本用法 菱形繼承與…

數字化賦能:制造業如何突破低效生產的瓶頸?

隨著全球經濟的快速發展與市場需求的變化,制造業面臨著前所未有的壓力與挑戰。生產效率、資源管理、品質控制、成本控制等方面的問題日益突出,尤其是低效生產成為了許多制造企業亟待解決的瓶頸。在這種背景下,數字化轉型成為提升制造業效率的…

Element-Plus,使用 El-form中 的 scroll-to-error 沒有效果問題記錄

因業務需要表單組件中嵌套著表格列表,內容比較多; 所以需要表單校驗不通過時,自動定位到不通過的節點; 但發現這個像是沒有起到效果一樣,后面就是排查的思路了: 容器高度問題:如果表單容器的高度…