intra-mart實現簡易登錄頁面筆記

一、前言

最近在學習intra-mart框架,在此總結下筆記。

intra-mart是一個前后端不分離的框架,開發時主要用的就是xml、html、js這幾個文件;
xml文件當做配置文件,html當做前端頁面文件,js當做后端文件(js里能連接數據庫);
所以js文件需要注意,因為算后端文件,其中的語法與前端開發的js有些不太相同(日志打印不能用console.log)。

二、代碼部分

1.路由文件

WEB-INF/conf/routing-jssp-config/test.xml

<?xml version="1.0" encoding="UTF-8"?>
<routing-jssp-configxmlns="http://www.intra-mart.jp/router/routing-jssp-config"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.intra-mart.jp/router/routing-jssp-config routing-jssp-config.xsd"><authz-default mapper="welcome-all" /><file-mapping path="/test/test1" page="test/myTest1" /><file-mapping path="/test/test2" page="test/myTest2" /><file-mapping path="/test/test3" page="test/myTest3" /></routing-jssp-config>

其中用到了3個路徑,test1是登錄首頁,test2是登錄后的頁面,test3只是一個接口,用來實現一個簡單的注冊功能。

2.登錄頁面

用到了2個文件:
WEB-INF/jssp/src/test/myTest1.html


<script src="ui/libs/jquery-validation-1.9.0/jquery.validate.js"></script>
<script type="text/javascript">console.log("加載js")jQuery(function() {jQuery('#register').click(function() {console.log("點擊按鈕")console.log(jQuery('#userName').val())jQuery.ajax({headers:{'test1':'mytest'},error:imuiTransitionToErrorPage,async:false, cache:false, dataType:'json', type:'POST', url:'test/test3', data:{'userName': jQuery('#userName').val(),'userPass': jQuery('#userPass').val()},success:function(result) {console.log("返回信息")                console.log(result)if (result.error) {imuiShowErrorMessage(result.errorMessage, result.detailMessages);return;}imuiShowSuccessMessage(result.code, result.msg);}});});})</script><div class="imui-title"><h1>Test</h1>
</div>
<div class="imui-toolbar-wrap"><div class="imui-toolbar-inner"><!-- ツールバー左側 --><ul class="imui-list-toolbar"><!-- 戻る --><li><a href="#dummy" class="imui-toolbar-icon" title="戻る"><span class="im-ui-icon-common-16-back"></span></a></li></ul><!-- ツールバー右側 --><ul class="imui-list-toolbar-utility"><li><a href="#dummy" class="imui-toolbar-icon" title="最新情報"><span class="im-ui-icon-common-16-refresh"></span></a></li></ul></div>
</div><div class="imui-form-container-wide"><div class="imui-chapter-title"><h2>login</h2></div><form method="post" name="LoginForm" action="test/test2">
<table class="imui-form"><tbody><tr><th><label class="imui-required">賬號</label></th><td><input type="text" name="userName" id="userName"></td></tr><tr><th><label>密碼</label></th><td><input type="text" name="userPass" id="userPass"></td></tr></tbody>
</table>
<div class="imui-operation-parts"><input type="submit" value="登錄" class="imui-small-button"><input type="button" value="注冊" class="imui-small-button" id="register">
</div>
</form>  </div>

WEB-INF/jssp/src/test/myTest1.js

function init(request) {}

頁面效果:
在這里插入圖片描述

這個頁面邏輯,主要是點擊登錄按鈕,就執行form表單的action,跳轉到test/test2頁面;

點擊注冊按鈕,就用ajax請求test/test3接口,把輸入的賬號和密碼存入數據庫,并返回相應提示。

3.注冊接口

用到了2個文件:
WEB-INF/jssp/src/test/myTest3.html


WEB-INF/jssp/src/test/myTest3.js

load('tenant/authz/ajax/common_api');
var MSG = MessageManager.getMessage;/*** @param request*/
function init(request) {var data;var logger = Logger.getLogger();logger.info(request.userName);logger.info(request.userPass);var database = new SharedDatabase("imart_test");var result;try{result = database.execute("insert into user_table (user_name, user_pass) VALUES ('"+request.userName+"', '"+request.userPass+"');");}catch(e){logger.info('error', e);  }logger.info('arguments=[{}]', result);logger.info('arguments3=[{}]', result.isSuccess()== true );var ret;if(result.isSuccess()){var ret = {"code":250, "msg":"success"};}else{var ret = {"code":249, "msg":"error"};}outputJSON(ret);}

雖然只是接口,但是也得寫個空的html文件;

js文件里,就會接收入參,存入數據庫user_table表里;

最后返回提示信息。

頁面效果:
在這里插入圖片描述
輸入d,4,點擊注冊,就會存入數據庫。

4.登錄后頁面

用到了2個文件:
WEB-INF/jssp/src/test/myTest2.html


<script src="ui/libs/jquery-validation-1.9.0/jquery.validate.js"></script>
<script type="text/javascript">//放在這里面,確保代碼在 DOM 加載完成后執行
jQuery(function() {var data = '<imart type="string" value=data />'var nowUserList = '<imart type="string" value=nowUserList />'if(data=='登錄成功'){console.log("登錄成功")console.log(jQuery('#test_table').length)//初始化下listconsole.log(ImJson.parseJSON(nowUserList))var jsonObj = ImJson.parseJSON(nowUserList);jQuery('#test_table').append('<caption>當前數據庫已有的用戶信息</caption>');for (var i = 0; i < jsonObj.length; i++) {jQuery('#test_table').append('<tr id="tr' + i + '"><td>'+jsonObj[i].user_name+'</td><td>'+jsonObj[i].user_pass+'</td></tr>');}}
else{console.log("登錄失敗")
}})
</script><imart type="string" value=data />.
<table id="test_table" class="imui-table-sort">
</table>

WEB-INF/jssp/src/test/myTest2.js


var data;var nowUserList;function init(request) {var logger = Logger.getLogger();logger.info(request.userName);logger.info(request.userPass);var database = new SharedDatabase("imart_test");var result = database.execute("select * from user_table where user_name='"+request.userName+"' and user_pass='"+request.userPass+"' ");logger.info('arguments=[{}]', result);logger.info('length='+result.data.length);if(result.data.length > 0){data = "登錄成功"}else{data = "登錄失敗"}var result2 = database.execute("select * from user_table limit 10 ");//轉換為json字符串nowUserList = ImJson.toJSONString(result2.data);//字符串轉json對象//ImJson.parseJSON//logger.info('result2='+result2.data.length);//logger.info('result2='+result2.data[0].user_name);//data = result.data[0].user_name;}

跳轉過來時,都會先執行js文件,其中先查詢了下數據庫,用戶是否存在;然后把用戶列表查詢出來了,前端用for循環展示下;

html文件中,有判斷,如果登錄成功,那就初始化下table,展示下用戶列表;

如果登錄失敗,那就只提示登錄失敗。

頁面效果:
在這里插入圖片描述
在這里插入圖片描述

三、備注

本文總結了下intra-mart各個頁面參數傳遞方法,接口調用方法,與for循環展示列表方法。

js文件直接當后端使用,比較少見,參數傳遞也和java不太相同。

前后端未分離,大部分用jquery和框架內置方法。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/69255.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/69255.shtml
英文地址,請注明出處:http://en.pswp.cn/web/69255.shtml

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

相關文章

Linux+Docer 容器化部署之 Shell 語法入門篇 【Shell 替代】

&#x1f380;&#x1f380;Shell語法入門篇 系列篇 &#x1f380;&#x1f380; LinuxDocer 容器化部署之 Shell 語法入門篇 【準備階段】LinuxDocer 容器化部署之 Shell 語法入門篇 【Shell變量】LinuxDocer 容器化部署之 Shell 語法入門篇 【Shell數組與函數】LinuxDocer 容…

Intellij IDEA如何查看當前文件的類

快捷鍵&#xff1a;CtrlF12&#xff0c;我個人感覺記快捷鍵很麻煩&#xff0c;知道具體的位置更簡單&#xff0c;如果忘了快捷鍵&#xff08;KeyMap&#xff09;看一下就記起來了&#xff0c;不需要再Google or Baidu or GPT啥的&#xff0c;位置&#xff1a;Navigate > Fi…

C++----繼承

一、繼承的基本概念 本質&#xff1a;代碼復用類關系建模&#xff08;是多態的基礎&#xff09; class Person { /*...*/ }; class Student : public Person { /*...*/ }; // public繼承 派生類繼承基類成員&#xff08;數據方法&#xff09;&#xff0c;可以通過監視窗口檢…

已驗證正常,Java輸入字符串生成PDF文件

Java輸入字符串生成PDF文件過程&#xff1a; 在Java開發中&#xff0c;如何將字符串轉換為 PDF 是一個常見的需求。網上找了很多例子都無法生成&#xff0c;經過多次嘗試&#xff0c;終于實現了&#xff0c;特此記錄一下。 1、引入pom.xml 添加所需的依賴 <dependency>&…

Mac M1 Comfyui 使用MMAudio遇到的問題解決?

問題1: AssertionError: Torch not compiled with CUDA enabled&#xff1f; 解決辦法&#xff1a;修改代碼以 CPU 運行 第一步&#xff1a;找到 /ComfyUI/custom_nodes/ComfyUI-MMAudio/mmaudio/ext/autoencoder/vae.py文件中的下面這兩行代碼 self.data_mean nn.Buffer(t…

從 .NET Framework 升級到 .NET 8 后 SignalR 問題處理與解決方案

隨著 .NET Framework 向 .NET 8 的遷移&#xff0c;許多開發者在使用 SignalR 時遇到了一些前后端連接、配置、調用等方面的問題。尤其是在處理 SignalR 實時通信功能時&#xff0c;升級后的一些兼容性問題可能導致應用程序無法正常工作。本文將介紹在從 .NET Framework 升級到…

2025.2.5——五、[網鼎杯 2020 青龍組]AreUSerialz 代碼審計|反序列化

題目來源&#xff1a;BUUCTF [網鼎杯 2020 青龍組]AreUSerialz 目錄 一、打開靶機&#xff0c;整理信息 二、解題思路 step 1&#xff1a;代碼審計 step 2&#xff1a;開始解題 突破protected訪問修飾符限制 三、小結 一、打開靶機&#xff0c;整理信息 直接得到一串ph…

Docker深度解析:安裝各大環境

安裝 Nginx 實現負載均衡&#xff1a; 掛載 nginx html 文件&#xff1a; 創建過載目錄&#xff1a; mkdir -p /data/nginx/{conf,conf.d,html,logs} 注意&#xff1a;在掛載前需要對 conf/nginx.conf 文件進行編寫 worker_processes 1;events {worker_connections 1024; …

docker啟動報錯code=exited, status=1/FAILURE——問題排查

問題 在某臺centos7機器上&#xff0c;啟動docker服務 sudo systemctl start docker報下列錯誤&#xff1a; ● docker.service - Docker Application Container EngineLoaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)Active: …

基于SpringBoot養老院平臺系統功能實現五

一、前言介紹&#xff1a; 1.1 項目摘要 隨著全球人口老齡化的不斷加劇&#xff0c;養老服務需求日益增長。特別是在中國&#xff0c;隨著經濟的快速發展和人民生活水平的提高&#xff0c;老年人口數量不斷增加&#xff0c;對養老服務的質量和效率提出了更高的要求。傳統的養…

PostGIS:使用shp2pgsql、pgsql2shp、OGR2OGR函數進行數據導入、導出

數據導入與導出函數 數據庫數據導入與導出可以通過多個函數完成&#xff0c;QGIS文檔介紹了3個函數&#xff1a; shp2pgsql、pgsql2shp、OGR2OGR&#xff0c;分別用于shp導入數據庫、數據庫文件導出為shp、數據轉換為多種數據格式。 &#xff08;1&#xff09;shp2pgsql 在l…

【AIGC魔童】DeepSeek v3推理部署:vLLM/SGLang/LMDeploy

【AIGC魔童】DeepSeek v3推理部署&#xff1a;vLLM/SGLang/LMDeploy &#xff08;1&#xff09;使用vLLM推理部署DeepSeek&#xff08;2&#xff09;使用SGLang推理部署DeepSeek&#xff08;3&#xff09;使用LMDeploy推理部署DeepSeek &#xff08;1&#xff09;使用vLLM推理部…

《AI “造臉術”:生成對抗網絡打造超真實虛擬人臉》

在科技飛速發展的當下&#xff0c;人工智能的浪潮席卷而來&#xff0c;其中生成對抗網絡&#xff08;GANs&#xff09;技術以其獨特的魅力&#xff0c;成為了生成高度真實感虛擬人臉的強大引擎。無論是影視制作中虛擬角色的塑造&#xff0c;還是游戲領域中多樣化角色形象的構建…

C語言的靈魂——指針(2)

前言&#xff1a;上期我們介紹了如何理解地址&#xff0c;內存&#xff0c;以及指針的一些基礎知識和運算&#xff1b;這期我們來介紹一下const修飾指針&#xff0c;野指針&#xff0c;assert斷言&#xff0c;指針的傳址調用。 上一篇指針&#xff08;1&#xff09; 文章目錄 一…

Android studio 創建aar包給Unity使用

1、aar 是什么&#xff1f; 和 Jar有什么區別 aar 和 jar包 都是壓縮包&#xff0c;可以使用壓縮軟件打開 jar包 用于封裝 Java 類及其相關資源 aar 文件是專門為 Android 平臺設計的 &#xff0c;可以包含Android的專有內容&#xff0c;比如AndroidManifest.xml 文件 &#…

ASP.NET Core中Filter與Middleware的區別

中間件是ASP.NET Core這個基礎提供的功能&#xff0c;而Filter是ASP.NET Core MVC中提供的功能。ASP.NET Core MVC是由MVC中間件提供的框架&#xff0c;而Filter屬于MVC中間件提供的功能。 區別 中間件可以處理所有的請求&#xff0c;而Filter只能處理對控制器的請求&#x…

基礎篇05-圖像直方圖操作

本節將簡要介紹Halcon中有關圖像直方圖操作的算子&#xff0c;重點介紹直方圖獲取和顯示兩類算子&#xff0c;以及直方圖均衡化處理算子。 目錄 1. 引言 2. 獲取并顯示直方圖 2.1 獲取&#xff08;灰度&#xff09;直方圖 (1) gray_histo算子 (2) gray_histo_abs算子 (3…

MySQL | Navicat安裝教程

MySQL | Navicat安裝教程 &#x1fa84;個人博客&#xff1a;https://vite.xingji.fun 簡介 Navicat 是一款流行的 圖形化數據庫管理工具&#xff0c;由 PremiumSoft 公司開發&#xff0c;支持多種主流數據庫系統&#xff08;如 MySQL、MariaDB、SQL Server、Oracle、Postgre…

硬件實現I2C案例(寄存器實現)

一、需求分析 二、硬件電路設計 本次案例需求與前面軟件模擬案例一致&#xff0c;這里不再贅述&#xff0c;不清楚可參見下面文章&#xff1a;軟件模擬I2C案例&#xff08;寄存器實現&#xff09;-CSDN博客 值得注意的是&#xff0c;前面是軟件模擬I2C&#xff0c;所以并沒有…

基于SpringBoot養老院平臺系統功能實現六

一、前言介紹&#xff1a; 1.1 項目摘要 隨著全球人口老齡化的不斷加劇&#xff0c;養老服務需求日益增長。特別是在中國&#xff0c;隨著經濟的快速發展和人民生活水平的提高&#xff0c;老年人口數量不斷增加&#xff0c;對養老服務的質量和效率提出了更高的要求。傳統的養…