From da1586f6fe9929e38e00bd202cbc381cd52c7d84 Mon Sep 17 00:00:00 2001 From: Codex Date: Tue, 24 Mar 2026 17:07:40 +0800 Subject: [PATCH] feat: make login land on protected portal --- pom.xml | 1 + web/WEB-INF/classes/struts.xml | 2 +- web/WEB-INF/views/index.jsp | 14 +++++++------- web/WEB-INF/views/user/login.jsp | 30 +++++++++++++++--------------- 4 files changed, 24 insertions(+), 23 deletions(-) diff --git a/pom.xml b/pom.xml index 720fb09..7e9fef9 100644 --- a/pom.xml +++ b/pom.xml @@ -80,6 +80,7 @@ ${jetty.version} 0 + ${project.basedir}/web / diff --git a/web/WEB-INF/classes/struts.xml b/web/WEB-INF/classes/struts.xml index ededc9b..0d96f21 100644 --- a/web/WEB-INF/classes/struts.xml +++ b/web/WEB-INF/classes/struts.xml @@ -37,7 +37,7 @@ - dashboard + index /WEB-INF/views/user/login.jsp diff --git a/web/WEB-INF/views/index.jsp b/web/WEB-INF/views/index.jsp index 0bf4849..2aa4d4e 100644 --- a/web/WEB-INF/views/index.jsp +++ b/web/WEB-INF/views/index.jsp @@ -155,7 +155,7 @@
登录后才能看到完整课程导航与实验入口。
@@ -240,10 +240,10 @@ text: { heroEyebrow: "Struts2 学习门户", heroTitle: "登录之后才能继续学习", - heroDesc: "所有入口都由 Session + AuthInterceptor 保护,未登录将自动跳回登录页。", - heroWarning: "未登录不能访问实验页;登录后可畅玩全部模块。", + heroDesc: "所有入口都由 Session + AuthInterceptor 保护,未登录将自动跳回登录页;登录成功后会先回到这个统一门户。", + heroWarning: "当前门户本身也在登录保护之下,适合用来总览各实验模块。", heroActionPrimary: "进入仪表盘", - heroActionSecondary: "立即登录", + heroActionSecondary: "退出登录", portalEyebrow: "学习模块导航", portalTitle: "分步骤理解 Struts2", portalDesc: "每个 `.action` 路径都在登录后才能访问,Session 鉴权串联整个体验。", @@ -262,10 +262,10 @@ text: { heroEyebrow: "Struts2 Learning Portal", heroTitle: "Login before you explore", - heroDesc: "All modules are protected by Session + AuthInterceptor. Unauthenticated access goes back to login.", - heroWarning: "Access denied until login; dashboard and labs available after authentication.", + heroDesc: "All modules are protected by Session + AuthInterceptor. After login, this protected portal becomes the unified entry.", + heroWarning: "The portal itself is protected and serves as the overview for every lab module.", heroActionPrimary: "Go to dashboard", - heroActionSecondary: "Login now", + heroActionSecondary: "Log out", portalEyebrow: "Module guide", portalTitle: "Step-by-step Struts2", portalDesc: "Every `.action` route sits behind login; the session chain secures the experience.", diff --git a/web/WEB-INF/views/user/login.jsp b/web/WEB-INF/views/user/login.jsp index ba05e9d..3b976bf 100644 --- a/web/WEB-INF/views/user/login.jsp +++ b/web/WEB-INF/views/user/login.jsp @@ -151,14 +151,14 @@
下一步看什么 - 登录成功后先看仪表盘,再进入用户表单、校验页和上传页。 + 登录成功后会先回到学习门户,再进入仪表盘、用户表单、校验页和上传页。
- + @@ -219,20 +219,20 @@ statOneTitle: "这一页讲什么", statOneText: "Action 校验、错误回显、Session 写入、登录后跳转。", statTwoTitle: "下一步看什么", - statTwoText: "登录成功后先看仪表盘,再进入用户表单、校验页和上传页。", + statTwoText: "登录成功后会先回到学习门户,再进入仪表盘、用户表单、校验页和上传页。", backPortalLink: "返回门户", - dashboardLink: "进入仪表盘", + dashboardLink: "进入学习门户", logoutLink: "退出登录", formEyebrow: "登录表单", formTitle: "输入演示账号", loggedInTitle: "当前已登录", - loggedInText: "你已经拥有可访问的 Session,可以直接进入仪表盘或退出后重新体验登录过程。", - loggedInDashboardLink: "打开仪表盘", + loggedInText: "你已经拥有可访问的 Session,可以先进入学习门户总览全部模块,也可以退出后重新体验登录过程。", + loggedInDashboardLink: "打开学习门户", loggedInLogoutLink: "退出后重试", helloLink: "运行 Hello Action", usernameLabel: "用户名", passwordLabel: "密码", - submitBtn: "写入 Session 并进入仪表盘" + submitBtn: "写入 Session 并进入学习门户" }, html: { credentialBody: "用户名:admin
密码:123456" @@ -248,20 +248,20 @@ statOneTitle: "What this page teaches", statOneText: "Action validation, error echoing, session writes, and post-login routing.", statTwoTitle: "What to open next", - statTwoText: "After login, open the dashboard first, then continue to the user form, validation page, and upload page.", + statTwoText: "After login, return to the learning portal first, then continue to the dashboard, user form, validation page, and upload page.", backPortalLink: "Back to portal", - dashboardLink: "Open dashboard", + dashboardLink: "Open learning portal", logoutLink: "Log out", formEyebrow: "Login form", formTitle: "Enter the demo account", loggedInTitle: "Already logged in", - loggedInText: "A valid session already exists. You can open the dashboard directly or log out and replay the login flow.", - loggedInDashboardLink: "Open dashboard", + loggedInText: "A valid session already exists. Open the learning portal for the full overview or log out and replay the login flow.", + loggedInDashboardLink: "Open learning portal", loggedInLogoutLink: "Log out and retry", helloLink: "Run hello action", usernameLabel: "Username", passwordLabel: "Password", - submitBtn: "Write session and enter dashboard" + submitBtn: "Write session and enter learning portal" }, html: { credentialBody: "Username: admin
Password: 123456"