云计算百科
云计算领域专业知识百科平台

泛微Ecode新增Button调用服务器中的JSP页面里的方法

前言

前端Ecode调用

后端接口编写

JSP文件方法

总结


前言

因为我们是从之前E8版本升级到E9的,所以会有一些接口是通过jsp文件来实现前后端调用的,这里介绍的就是如果你有接口是写在jsp文件里面调用的,但是你又想在Ecode中调用的对应的接口,那么继续往下看你就会明白具体该如何调用了

前端Ecode调用

const { WeaTools, WeaSlideModal } = ecCom;

class testComponent extends React.Component {
constructor(props) {
super(props);
this.state = {
info: {
name: ''
},
jsonData: {},
currentObj: {},
xm: WfForm.getFieldValue(WfForm.convertFieldNameToId("xm"))
};

}

componentDidMount() {
window.WfCustomInfoRef = this;
this.getData();
}

getData() {
const data = {
name: "John1",
age: 25
};

fetch('http://IP:PORT/api/workflow/test/getInfo2', {
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);
});
}

handleClick() {
alert("ecode方法被点击");

}

render() {
const { info, jsonData, currentObj } = this.state;
return (
<div>
添加的自定义内容2{jsonData.username}
<SonComponent />
<button onClick={()=>{
var requestId = WfForm.getBaseInfo().requestid;
jQuery.ajax({
type: "POST",
url: "http://IP:PORT/workflow/request/GetInfoDataAjax.jsp",
data: {'requestid':requestId, 'method':"QZgd"},
//dataType: 'json',
success:function(data){
console.log(data)
// alert(data)
},
error:function(data){
alert("系统出现问题,请联系管理员!");
}
})
}}>按钮</button>
{jsonData.test}
</div>
);
}
}

ecodeSDK.setCom('${appId}', 'testComponent', testComponent);

需要注意的是,可以直接在插入的按钮里编写点击事件,但是推荐最好就是定义一个方法,然后点击按钮的时候直接调用就可以了(因为我这里是做一个测试,所以就直接写上去了)

后端接口编写

package com.jiuyi.info;
import weaver.interfaces.workflow.action.WorkflowFnaInWorkflow;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class TestGuiDang {
private Log log = (Log) LogFactory.getLog(WorkflowFnaInWorkflow.class.getName());
public String Qzgd(String requestId){
this.log.info("TestGuiDang测试按钮点击接口的调用"+requestId);

return "1";
}

}

在这个class中编写你需要的代码即可,无论是更新数据还是返回信息都可以,只是你需要注意要将这个接口放到对应的jsp文件中引用

JSP文件方法

<%@page import="net.sf.json.JSONObject"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" %>

<%@page import="weaver.general.Util"%>
<%@page import="com.sap.mw.jco.IFunctionTemplate"%>
<%@page import="com.sap.mw.jco.JCO"%>

<jsp:useBean id="rs" class="weaver.conn.RecordSet" scope="page"/>
<%@page import="weaver.general.BaseBean"%>

<%@page import="com.jiuyi.ajax.TestGuiDang"%>

<%

if(method.equals("QZgd")){
TestGuiDang testGuiDan = new TestGuiDang();
String requestId = Util.null2String(request.getParameter("requestid"));
out.println("Request ID: " + requestId);
out.println(testGuiDan.Qzgd(requestId));
return;
}

%>

在jsp文件中,你会有对应的方法名称来进行判断,然后只需要实例化对象然后传参调用即可

总结

建议最好还是直接采用E9的接口编写,那样的话轻松多了,可以直接通过接口传递参数而不用借助jsp文件来实现前后端的传参

赞(0)
未经允许不得转载:网硕互联帮助中心 » 泛微Ecode新增Button调用服务器中的JSP页面里的方法
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!