iPlat4J入門培訓

1、開發環境搭建

1.1 Java

版本要求:1.8+

  • 首先需要驗證下本機是否已經安裝JDK,並且版本是否爲1.8及以上。
  • 驗證操作:進入控制檯輸入:java -version,如果出現下圖或者顯示版本號不是1.8及以上就需要重新安裝JDK。
    JDK未成功安裝

安裝JDK
在這裏插入圖片描述

點擊下一步

點擊“更改”可以自定義安裝目錄,選擇完安裝目錄後(安裝目錄最好不要有中文),點擊下一步
在這裏插入圖片描述

現在需要安裝jre,同樣點擊“更改”可以自定義安裝目錄,選擇完安裝目錄後(安裝目錄最好不要有中文),點擊下一步
在這裏插入圖片描述

至此,java運行環境安裝完畢,點擊關閉
在這裏插入圖片描述

驗證是否安裝成功:控制檯輸入:java -version,出現下圖則安裝成功
在這裏插入圖片描述

1.2 Tomcat

版本要求:8.5
解壓縮到本機目錄即可

在這裏插入圖片描述

1.3 Mysql

版本要求:5.7

  • 高版本數據庫在使用iplat4j代碼生成會報錯,推薦使用5.7版本的數據庫

在這裏插入圖片描述

雙擊mysql-installer-community-5.7.30.0.msi開始安裝數據庫
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

設置mysql端口號,默認:3306
在這裏插入圖片描述

設置root用戶的密碼
在這裏插入圖片描述

設置mysql服務在windows服務裏面的顯示名稱
在這裏插入圖片描述

繼續安裝
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

測試mysql服務是否可以連接成功
在這裏插入圖片描述

繼續下一步
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

打開windows服務,查看mysql服務是否正常啓動
在這裏插入圖片描述

安裝navicat數據庫工具
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

自定義安裝目錄
在這裏插入圖片描述

創建快捷方式
在這裏插入圖片描述

創建桌面圖標
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

安裝成功後,先不要打開navicat,下面破解navicat,解壓縮破解文件
在這裏插入圖片描述

進入簡體中文64位目錄,複製裏面兩個文件,粘貼到navicat安裝目錄,破解完成
在這裏插入圖片描述

創建本地mysql連接
在這裏插入圖片描述
在這裏插入圖片描述

新建iplat數據庫
在這裏插入圖片描述
數據庫名爲:iplat,字符集:utf8mb4,排序規則:utf8mb4_general_ci
在這裏插入圖片描述

導入sql數據
在這裏插入圖片描述
導入成功
在這裏插入圖片描述
平臺示例項目表如下
在這裏插入圖片描述

1.4 STS

STS的版本沒有硬性要求,這裏使用的是最新版:4.6.1
雙擊安裝jar,會解壓到當前目錄

在這裏插入圖片描述
在這裏插入圖片描述

雙擊後解壓在當前目錄生成sts目錄,拷貝此文件夾至本機合適的位置
在這裏插入圖片描述

爲STS添加iplat4j代碼生成插件,複製iplat4j-plugin-6.0.731-SNAPSHOT.jar文件
在這裏插入圖片描述

iplat4j-plugin-6.0.731-SNAPSHOT.jar複製到sts-4.6.1.RELEASE\plugins目錄下
在這裏插入圖片描述

雙擊SpringToolSuite4.exe打開STS,可以將此文件發送到桌面快捷方式,方便以後使用
在這裏插入圖片描述

設置STS的工作空間,也就是以後開發代碼存放的位置,設置好後點擊Launch,進入STS
在這裏插入圖片描述

檢查STS的配置jre
路徑:Window --> Preferences
在這裏插入圖片描述

路徑:Java--> Installed JREs
如果出現下圖,已經識別到我們之前安裝的jdk,不需要進行額外的配置了
在這裏插入圖片描述

如果爲空需要點擊右側的Add...,在彈出的頁面選擇Standard VM,點擊Next
在這裏插入圖片描述
點擊Directory...,選擇自己的jre安裝路徑(jre的根目錄)
在這裏插入圖片描述
如下圖所示,點擊Finish,完成jre配置
在這裏插入圖片描述
應用更改並退出
在這裏插入圖片描述

開始配置Tomcat,依次打開Window-->Show View-->Other..
在這裏插入圖片描述
在彈出的窗口裏面輸入server,找到Servers選項,點擊Open
在這裏插入圖片描述
在新打開的Servers窗口下點擊打開新增Server窗口
在這裏插入圖片描述
在查詢框中輸入8.5快速找到我們要添加的Tomcat 8.5,選擇後點擊Next
在這裏插入圖片描述
點擊Browse...,選擇我們之前安裝的tomcat目錄
在這裏插入圖片描述
tomcat路徑選擇到tomcat的根目錄即可,JRE我們選擇之前引入的jre,至此STS配置完成
在這裏插入圖片描述
Servers視圖下,雙擊剛剛新建的Tomcat ServerTimeouts啓動超時時間改大點,防止服務超時未啓動成功
在這裏插入圖片描述

2、快速入門

2.1 iplat4j示例項目

依次點擊File-->Import...導入iplat4j示例項目
在這裏插入圖片描述
選擇General-->Existing Projects into Workspace,點擊Next
在這裏插入圖片描述
點擊Browse...選擇iPlat4j6文件夾,點擊Finish,示例項目導入成功
在這裏插入圖片描述

如果導入項目後有個紅色的感嘆號,則需要右鍵點擊該項目,再依次選擇Build Path-->Configure Build Path
在這裏插入圖片描述
按照下圖重新加載本機的jre路徑
在這裏插入圖片描述

現在將該項目加入Tomcat

  • 項目jsp文件中EF標籤報錯,不影響項目啓動
    在這裏插入圖片描述
    在彈出頁面中按下圖依次操作
    在這裏插入圖片描述

找到application.properties打開修改成本機數據庫的密碼
在這裏插入圖片描述

啓動項目
在這裏插入圖片描述
控制檯出現下圖所示,表示已經啓動成功
在這裏插入圖片描述

瀏覽器輸入http://localhost:8080/iplatdemo/login.jsp,可以看到成功運行(用戶名:admin,密碼:12345
在這裏插入圖片描述
在這裏插入圖片描述

2.2 修改成工程項目

假設項目名爲:iplatdemo,模塊名爲:dm,則打開application.properties修改成下圖,並重啓項目
在這裏插入圖片描述

打開EDCC02頁面,此時項目英文名爲空需要配置下 項目模塊信息管理
在這裏插入圖片描述

EDPI01 項目模塊信息管理頁面新增項目、模塊信息
在這裏插入圖片描述

再次打開EDCC02頁面,此時已經默認帶入項目英文名爲IPLATDEMO
在這裏插入圖片描述

接下來還需要配置下多項目信息namelist
EDCC03 配置信息頁面,修改原有項目IPLAT4J的多項目配置,在配置內容中追加iplatdemo, 注意多個環境中的記錄
在這裏插入圖片描述

EDCC02 配置環境頁面, 新增iplatdemo項目環境信息
在這裏插入圖片描述

EDCC03 配置信息頁面,增加iplatdemo的多項目配置,至此工程項目配置完成,重啓Tomcat,以後就可以在這個下面進行開發了
在這裏插入圖片描述

備註:

  • EDCC03配置項需要項目重啓才能生效

3、入門案列

在這裏插入圖片描述

3.1 配置模塊信息

進入EDPI01 項目模塊信息管理頁面,在我們之前建的DM下面建一個CM二級目錄
在這裏插入圖片描述

3.2 配置頁面和按鈕信息

進入EDFA00 頁面信息管理頁面,添加頁面信息
在這裏插入圖片描述

進入EDFA01 按鈕信息管理頁面,添加頁面按鈕信息
在這裏插入圖片描述

畫面英文名 按鈕英文名 區域標識 按鈕中文 排序 是否授權 操作分類
DMCM01 QUERY INQU 查詢 1 不授權 查詢
DMCM01 INSERT GRID:EF_GRID_RESULT 新增 2 不授權 新增
DMCM01 SAVE GRID:EF_GRID_RESULT 保存 3 不授權 修改
DMCM01 CANCEL GRID:EF_GRID_RESULT 取消 4 不授權 查詢
DMCM01 DELETE GRID:EF_GRID_RESULT 刪除 5 不授權 刪除

3.3 創建表

  • 平臺推薦用T+一級模塊+二級模塊+兩位序列號來命名錶名,所以這裏表名爲:TDMCM01

首先進入EIIT10 信息項字根管理維護字根
在這裏插入圖片描述

進入EDDBT0 表頭信息維護頁面維護表頭信息
在這裏插入圖片描述

進入EIIT00 信息項管理維護信息項
在這裏插入圖片描述

進入EDDBT1 表數據項維護頁面維護表字段信息
在這裏插入圖片描述

進入EDDBI0 表索引維護頁面 維護主鍵,索引信息
在這裏插入圖片描述

進入EDIG03 SQL生成 導出SQL建表語句
在這裏插入圖片描述

將sql語句複製到navicat運行,由於示例項目的表索引維護功能異常,需要加上主鍵生成語句:
ALTER TABLE TDMCM01 ADD PRIMARY KEY (STUDENT_CODE);
在這裏插入圖片描述

3.4 使用代碼生成插件生成domainsqlmap代碼

首先需要根據平臺規範建立前後臺代碼的目錄結構
在這裏插入圖片描述

Package Explorer視圖下,在iplatdemo.common.dm.domain路徑上右鍵選擇iplat4j v6 代碼生成
在這裏插入圖片描述

選擇本項目application.properties文件,會自動帶入數據庫連接信息,點擊Next...
在這裏插入圖片描述

選擇iplat數據庫,找到TDMCM01勾選好,點擊Next...

檢查下路徑是否導入正確,點擊Finish,完成代碼生成
在這裏插入圖片描述
生成的代碼如下
在這裏插入圖片描述

檢查下代碼是否中文亂碼,如果是需要改下項目編碼配置
在這裏插入圖片描述
在這裏插入圖片描述

3.5 編寫前臺代碼

可以複製項目裏面的EE10.jspEE10.js兩個文件到DM/CM目錄下,並修改名字爲DMCM01.jspDMCM01.js
在這裏插入圖片描述

3.6 編寫服務代碼

在這裏插入圖片描述

代碼如下:

package com.baosight.iplatdemo.dm.cm.service;

import com.baosight.iplat4j.core.ei.EiInfo;
import com.baosight.iplat4j.core.service.impl.ServiceBase;
import com.baosight.iplatdemo.common.dm.domain.Tdmcm01;

public class ServiceDMCM01 extends ServiceBase{
	
	/**
	 * 頁面初始化加載
	 *
	 * @param inInfo
	 * @return
	 */
	@Override
	public EiInfo initLoad(EiInfo inInfo) {
		return query(inInfo);
	}
	
	/**
	 * 查詢功能
	 *
	 * @param inInfo
	 * @return
	 */
	@Override
	public EiInfo query(EiInfo inInfo) {
		return super.query(inInfo, "tdmcm01.query", new Tdmcm01());
	}
	
	/**
	 * 新增功能
	 *
	 * @param inInfo
	 * @return
	 */
	@Override
	public EiInfo insert(EiInfo inInfo) {
		return super.insert(inInfo, "tdmcm01.insert");
	}
	
	/**
	 * 更新功能
	 *
	 * @param inInfo
	 * @return
	 */
	@Override
	public EiInfo update(EiInfo inInfo) {
		return super.update(inInfo, "tdmcm01.update");
	}
	
	/**
	 * 刪除功能
	 *
	 * @param inInfo
	 * @return
	 */
	@Override
	public EiInfo delete(EiInfo inInfo) {
		return super.delete(inInfo, "tdmcm01.delete");
	}
}

3.7 查看目前頁面效果

訪問http://localhost:8080/iplatdemo/web/DMCM01,展示如下,數據新增,修改,刪除已經可以操作了,接下來根據案例要求進行完善
在這裏插入圖片描述

3.8 完善前臺代碼

  • DMCM01.jsp代碼如下
<!DOCTYPE html>
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="EF" tagdir="/WEB-INF/tags/EF" %>

<c:set var="ctx" value="${pageContext.request.contextPath}"/>

<EF:EFPage title="學生成績列表">
    <EF:EFRegion id="inqu" title="查詢條件" type="query" efRegionShowClear="true" efRegionSave="true">
        <div class="row">
        	<EF:EFInput ename="inqu_status-0-studentCode" cname="學員編號"/>
            <EF:EFInput ename="inqu_status-0-studentName" cname="學員姓名"/>
            <EF:EFSelect ename="inqu_status-0-studentSex" cname="學員性別">
                <EF:EFOption label="全部" value="" />
                <EF:EFOption label="男" value="1" />
                <EF:EFOption label="女" value="2" />
            </EF:EFSelect>        
        </div>
    </EF:EFRegion>
    <EF:EFRegion id="result" title="記錄集">
        <EF:EFGrid blockId="result" autoDraw="mixed">
        	<EF:EFComboColumn cname="學員性別" ename="studentSex">
        	      <EF:EFOption label="男" value="1" />
                  <EF:EFOption label="女" value="2" />
        	</EF:EFComboColumn>
			<EF:EFColumn ename="manage" cname="操作"  />
		</EF:EFGrid>
	</EF:EFRegion>
	<!--彈出頁面-->
	<EF:EFWindow id="window" url="" height="50%" width="60%" />
</EF:EFPage>
  • DMCM01.js代碼如下
$(function () {
	$("#QUERY").on("click", function (e) {
		resultGrid.dataSource.page(1);
	});
});


IPLATUI.EFGrid = {
        "result": {
            columns: [{
                    field: "manage",
                    title: "操作",
                    template: '<a οnclick="openDetail(\'#:studentCode#\')">查看明細</a>',
                    enable: false,
                    width: 100
                }]
        }
 }

 function openDetail(studentCode){
	if(studentCode == " "){
		return;
	}else{
		 var popWindow = $("#window");
	 	 var url = IPLAT.createUrl("DMCM02","inqu_status-0-studentCode="+studentCode);
		    popWindow.data("kendoWindow").setOptions({
		        open: function () {
		            popWindow.data("kendoWindow").refresh({
		                url: url
		            });
		        },
		        iframe: true
		    });
		    
		    popWindow.data("kendoWindow").content();
		    //打開彈窗
		    popWindow.data("kendoWindow").center().open();
	}
 	
 }
  • 由於題目要求需要有一個詳情頁面,新增 DMCM02.jsp代碼如下,同樣 DMCM02頁面也需要在平臺EDFA00 頁面信息管理頁面進行登記
<!DOCTYPE html>
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib prefix="EF" tagdir="/WEB-INF/tags/EF"%>

<c:set var="ctx" value="${pageContext.request.contextPath}" />

<EF:EFPage title="學生成績詳情">

	<EF:EFRegion id="result" title='結果集'>
		<div class="row">
			<EF:EFInput blockId="result" ename="studentCode" cname="學生編號"
				row="0" data-bind="value: studentCode" disabled="true" />
			<EF:EFInput blockId="result" ename="studentName" cname="學生姓名" 
				row="0" data-bind="value: studentName" disabled="true" />
			<div class="col-xs-4"></div>
		</div>
		<div class="row">
			<EF:EFInput blockId="result" ename="studentSubject" cname="科目"
				row="0" data-bind="value: studentSubject" disabled="true" />
			<EF:EFInput blockId="result" ename="studentGrade" cname="成績"
				row="0" data-bind="value: studentGrade" disabled="true" />
			<div class="col-xs-4"></div>
		</div>
		<div class="row">
			<EF:EFSelect ename="studentSex" cname="性別" blockId="result"
				row="0" data-bind="value: studentSex" disabled="true" >
				<EF:EFOption label="男" value="1" />
				<EF:EFOption label="女" value="2" />
			</EF:EFSelect>

			<EF:EFInput blockId="result" ename="studentPhone" cname="手機號" 
				row="0" data-bind="value: studentPhone" disabled="true" />
		</div>
	</EF:EFRegion>
	
</EF:EFPage>

3.9 完善後臺代碼

後臺代碼根據題目要求我們需要修改ServiceDMCM01.java tdmcm.xml 並新增ServiceDMCM02.java
根據平臺規範,如果要修改自動生成的代碼,需要在業務包下面新建文件修改,比如現在需要修改tdmcm.xml,改名成DMCM01.xml 並放在DM/CM目錄下,代碼如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap  PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">	<!--      table information
		Generate time : 2020-05-31 21:39:20
   		Version :  6.0.731.201809200158
		tableName :iplat.tdmcm01 
		 STUDENT_CODE  VARCHAR   NOT NULL   primarykey, 
		 STUDENT_NAME  VARCHAR   NOT NULL, 
		 STUDENT_SEX  INTEGER   NOT NULL, 
		 STUDENT_PHONE  VARCHAR   NOT NULL, 
		 STUDENT_SUBJECT  VARCHAR   NOT NULL, 
		 STUDENT_GRADE  VARCHAR   NOT NULL
	-->
<sqlMap namespace="DMCM01">

	<select id="query" parameterClass="java.util.HashMap" 
			resultClass="com.baosight.iplatdemo.common.dm.domain.Tdmcm01">
		SELECT
				STUDENT_CODE	as "studentCode",  <!-- 學生編號 -->
				STUDENT_NAME	as "studentName",  <!-- 學生姓名 -->
				STUDENT_SEX	as "studentSex",  <!-- 學生性別 -->
				STUDENT_PHONE	as "studentPhone",  <!-- 學生手機 -->
				STUDENT_SUBJECT	as "studentSubject",  <!-- 科目 -->
				STUDENT_GRADE	as "studentGrade" <!-- 成績 -->
		FROM iplat.tdmcm01 WHERE 1=1
		<isNotEmpty prepend=" AND " property="studentCode">
			STUDENT_CODE = #studentCode#
		</isNotEmpty>
		<isNotEmpty prepend=" AND " property="studentName">
			STUDENT_NAME LIKE concat('%', #studentName#, '%')
		</isNotEmpty>
		<isNotEmpty prepend=" AND " property="studentSex">
			STUDENT_SEX = #studentSex#
		</isNotEmpty>
			<dynamic prepend="ORDER BY">
         <isNotEmpty property="orderBy">
    		  $orderBy$
   		 </isNotEmpty>
   		<isEmpty property="orderBy">
    		  STUDENT_CODE asc
		</isEmpty>
  		</dynamic>
			
	</select>

	<select id="count" resultClass="int">
		SELECT COUNT(*) FROM iplat.tdmcm01 WHERE 1=1
		<isNotEmpty prepend=" AND " property="studentCode">
			STUDENT_CODE = #studentCode#
		</isNotEmpty>
		<isNotEmpty prepend=" AND " property="studentName">
			STUDENT_NAME LIKE concat('%', #studentName#, '%')
		</isNotEmpty>
		<isNotEmpty prepend=" AND " property="studentSex">
			STUDENT_SEX = #studentSex#
		</isNotEmpty>
	</select>
	
	<!--  
		<isNotEmpty prepend=" AND " property="studentCode">
			STUDENT_CODE = #studentCode#
		</isNotEmpty>
		<isNotEmpty prepend=" AND " property="studentName">
			STUDENT_NAME = #studentName#
		</isNotEmpty>
		<isNotEmpty prepend=" AND " property="studentSex">
			STUDENT_SEX = #studentSex#
		</isNotEmpty>
		<isNotEmpty prepend=" AND " property="studentPhone">
			STUDENT_PHONE = #studentPhone#
		</isNotEmpty>
		<isNotEmpty prepend=" AND " property="studentSubject">
			STUDENT_SUBJECT = #studentSubject#
		</isNotEmpty>
		<isNotEmpty prepend=" AND " property="studentGrade">
			STUDENT_GRADE = #studentGrade#
		</isNotEmpty>
	-->

	<insert id="insert">
		INSERT INTO iplat.tdmcm01 (STUDENT_CODE,  <!-- 學生編號 -->
										STUDENT_NAME,  <!-- 學生姓名 -->
										STUDENT_SEX,  <!-- 學生性別 -->
										STUDENT_PHONE,  <!-- 學生手機 -->
										STUDENT_SUBJECT,  <!-- 科目 -->
										STUDENT_GRADE  <!-- 成績 -->
										)		 
	    VALUES (#studentCode#, #studentName#, #studentSex#, #studentPhone#, #studentSubject#, #studentGrade#) 
	</insert>
  
	<delete id="delete">
		DELETE FROM iplat.tdmcm01 WHERE 
			STUDENT_CODE = #studentCode#
	</delete>

	<update id="update">
		UPDATE iplat.tdmcm01 
		SET 
					STUDENT_NAME	= #studentName#,   <!-- 學生姓名 -->  
					STUDENT_SEX	= #studentSex#,   <!-- 學生性別 -->  
					STUDENT_PHONE	= #studentPhone#,   <!-- 學生手機 -->  
					STUDENT_SUBJECT	= #studentSubject#,   <!-- 科目 -->  
					STUDENT_GRADE	= #studentGrade#  <!-- 成績 -->  
			WHERE 	
			STUDENT_CODE = #studentCode#
	</update>
  
</sqlMap>

修改ServiceDMCM01.java,代碼如下:

package com.baosight.iplatdemo.dm.cm.service;

import com.baosight.iplat4j.core.ei.EiInfo;
import com.baosight.iplat4j.core.service.impl.ServiceBase;
import com.baosight.iplatdemo.common.dm.domain.Tdmcm01;

public class ServiceDMCM01 extends ServiceBase{
	
	/**
	 * 頁面初始化加載
	 *
	 * @param inInfo
	 * @return
	 */
	@Override
	public EiInfo initLoad(EiInfo inInfo) {
		return super.initLoad(inInfo, new Tdmcm01());
	}
	
	/**
	 * 查詢功能
	 *
	 * @param inInfo
	 * @return
	 */
	@Override
	public EiInfo query(EiInfo inInfo) {
		return super.query(inInfo, "DMCM01.query", new Tdmcm01());
	}
	
	/**
	 * 新增功能
	 *
	 * @param inInfo
	 * @return
	 */
	@Override
	public EiInfo insert(EiInfo inInfo) {
		return super.insert(inInfo, "DMCM01.insert");
	}
	
	/**
	 * 更新功能
	 *
	 * @param inInfo
	 * @return
	 */
	@Override
	public EiInfo update(EiInfo inInfo) {
		return super.update(inInfo, "DMCM01.update");
	}
	
	/**
	 * 刪除功能
	 *
	 * @param inInfo
	 * @return
	 */
	@Override
	public EiInfo delete(EiInfo inInfo) {
		return super.delete(inInfo, "DMCM01.delete");
	}
}

新增ServiceDMCM02.java,代碼如下:

package com.baosight.iplatdemo.dm.cm.service;

import com.baosight.iplat4j.core.ei.EiInfo;
import com.baosight.iplat4j.core.service.impl.ServiceBase;
import com.baosight.iplatdemo.common.dm.domain.Tdmcm01;

public class ServiceDMCM02 extends ServiceBase{
	
	/**
	 * 頁面初始化加載
	 *
	 * @param inInfo
	 * @return
	 */
	@Override
	public EiInfo initLoad(EiInfo inInfo) {
		return query(inInfo);
	}
	
	/**
	 * 查詢功能
	 *
	 * @param inInfo
	 * @return
	 */
	@Override
	public EiInfo query(EiInfo inInfo) {
		return super.query(inInfo, "DMCM01.query", new Tdmcm01());
	}
	
}

3.10 最終效果展示

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

4、常見問題

4.1 前後臺如何交互的

前後臺交互

前臺 --> 後臺

  1. 前臺頁面發起 AJAX 請求
  2. 通過平臺的 js 工具類,構造待提交的 EiInfo JSON 字符串
  3. 請求到後臺的 Service Java 代碼, JSON 字符串被反序列化成 EiInfo Java 對象

後臺 --> 前臺

  1. 後臺服務經過查詢,計算將結果存儲到 EiInfo 對象中
  2. 通過平臺的 java 工具類,序列化 EiInfo 對象,構造出返回到前臺的 EiInfo JSON 字符串
  3. 後臺響應的 EiInfo JSON 字符串,被解析爲頁面中的 EiInfo JS 對象
  • 注意:後臺Service類接收和返回參數類型都是EiInfo

4.2 詳情頁面頁面初始化方法與列表頁面不同

在這裏插入圖片描述

4.3 常見報錯原因

4.3.1 新加的sqlmap中namespace值沒有修改成DMCM01.xml的名稱在這裏插入圖片描述

Caused by: com.ibatis.sqlmap.client.SqlMapException: There is no statement named DMCM01.query in this SqlMap.

4.3.2 頁面沒有在EDFA00 頁面信息管理中登記

在這裏插入圖片描述

4.3.3 Service代碼路徑不對或者沒有新建Service類

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章