2026-03-18 15:18:30 +08:00
|
|
|
<?xml version="1.0" encoding="UTF-8" ?>
|
|
|
|
|
<!DOCTYPE struts PUBLIC
|
|
|
|
|
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
|
|
|
|
|
"http://struts.apache.org/dtds/struts-2.5.dtd">
|
|
|
|
|
|
|
|
|
|
<struts>
|
2026-03-24 09:18:13 +08:00
|
|
|
<constant name="struts.devMode" value="false"/>
|
2026-03-18 15:18:30 +08:00
|
|
|
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
|
|
|
|
|
<constant name="struts.i18n.encoding" value="UTF-8"/>
|
2026-03-24 09:18:13 +08:00
|
|
|
<constant name="struts.action.extension" value="action"/>
|
|
|
|
|
|
|
|
|
|
<package name="default" namespace="/" extends="json-default">
|
|
|
|
|
<interceptors>
|
|
|
|
|
<interceptor name="auth" class="com.demo.action.interceptor.AuthInterceptor"/>
|
|
|
|
|
<interceptor-stack name="secureStack">
|
|
|
|
|
<interceptor-ref name="auth"/>
|
|
|
|
|
<interceptor-ref name="defaultStack"/>
|
|
|
|
|
</interceptor-stack>
|
|
|
|
|
</interceptors>
|
|
|
|
|
|
|
|
|
|
<global-results>
|
|
|
|
|
<result name="login" type="redirectAction">loginPage</result>
|
|
|
|
|
</global-results>
|
2026-03-18 15:18:30 +08:00
|
|
|
|
|
|
|
|
<action name="index">
|
2026-03-24 16:00:44 +08:00
|
|
|
<interceptor-ref name="secureStack"/>
|
2026-03-24 09:18:13 +08:00
|
|
|
<result>/WEB-INF/views/index.jsp</result>
|
|
|
|
|
</action>
|
|
|
|
|
|
|
|
|
|
<action name="loginPage">
|
|
|
|
|
<result>/WEB-INF/views/user/login.jsp</result>
|
2026-03-18 15:18:30 +08:00
|
|
|
</action>
|
2026-03-18 18:12:20 +08:00
|
|
|
|
2026-03-18 15:18:30 +08:00
|
|
|
<action name="hello" class="com.demo.action.HelloAction" method="execute">
|
2026-03-24 16:00:44 +08:00
|
|
|
<interceptor-ref name="secureStack"/>
|
2026-03-18 15:18:30 +08:00
|
|
|
<result>/hello.jsp</result>
|
|
|
|
|
</action>
|
2026-03-18 18:12:20 +08:00
|
|
|
|
2026-03-18 15:18:30 +08:00
|
|
|
<action name="login" class="com.demo.action.LoginAction" method="execute">
|
2026-03-24 17:07:40 +08:00
|
|
|
<result name="success" type="redirectAction">index</result>
|
2026-03-24 09:18:13 +08:00
|
|
|
<result name="input">/WEB-INF/views/user/login.jsp</result>
|
|
|
|
|
</action>
|
|
|
|
|
|
|
|
|
|
<action name="dashboard" class="com.demo.action.DashboardAction" method="execute">
|
|
|
|
|
<interceptor-ref name="secureStack"/>
|
|
|
|
|
<result>/WEB-INF/views/user/dashboard.jsp</result>
|
|
|
|
|
</action>
|
|
|
|
|
|
|
|
|
|
<action name="logout" class="com.demo.action.LogoutAction" method="execute">
|
|
|
|
|
<result type="redirectAction">loginPage</result>
|
|
|
|
|
</action>
|
|
|
|
|
|
|
|
|
|
<action name="userFormPage">
|
|
|
|
|
<interceptor-ref name="secureStack"/>
|
|
|
|
|
<result>/WEB-INF/views/user/form.jsp</result>
|
|
|
|
|
</action>
|
|
|
|
|
|
|
|
|
|
<action name="validationPage">
|
|
|
|
|
<interceptor-ref name="secureStack"/>
|
|
|
|
|
<result>/WEB-INF/views/validation/form.jsp</result>
|
|
|
|
|
</action>
|
|
|
|
|
|
|
|
|
|
<action name="uploadPage">
|
|
|
|
|
<interceptor-ref name="secureStack"/>
|
|
|
|
|
<result>/WEB-INF/views/upload/index.jsp</result>
|
2026-03-18 15:18:30 +08:00
|
|
|
</action>
|
2026-03-18 18:12:20 +08:00
|
|
|
|
2026-03-18 15:18:30 +08:00
|
|
|
<action name="submitUser" class="com.demo.action.UserAction" method="submit">
|
2026-03-24 09:18:13 +08:00
|
|
|
<interceptor-ref name="secureStack"/>
|
|
|
|
|
<result name="success">/WEB-INF/views/user/success.jsp</result>
|
|
|
|
|
<result name="input">/WEB-INF/views/user/form.jsp</result>
|
2026-03-18 15:18:30 +08:00
|
|
|
</action>
|
2026-03-18 18:12:20 +08:00
|
|
|
|
2026-03-18 15:18:30 +08:00
|
|
|
<action name="upload" class="com.demo.action.FileUploadAction" method="execute">
|
2026-03-24 09:18:13 +08:00
|
|
|
<interceptor-ref name="secureStack"/>
|
|
|
|
|
<result name="success">/WEB-INF/views/upload/success.jsp</result>
|
|
|
|
|
<result name="input">/WEB-INF/views/upload/index.jsp</result>
|
2026-03-18 15:18:30 +08:00
|
|
|
</action>
|
2026-03-18 18:12:20 +08:00
|
|
|
|
2026-03-18 15:18:30 +08:00
|
|
|
<action name="ajax" class="com.demo.action.AjaxAction" method="execute">
|
2026-03-24 16:00:44 +08:00
|
|
|
<interceptor-ref name="secureStack"/>
|
2026-03-18 15:18:30 +08:00
|
|
|
<result type="json"/>
|
|
|
|
|
</action>
|
2026-03-18 18:12:20 +08:00
|
|
|
|
2026-03-18 15:18:30 +08:00
|
|
|
<action name="validate" class="com.demo.action.ValidationAction" method="execute">
|
2026-03-24 09:18:13 +08:00
|
|
|
<interceptor-ref name="secureStack"/>
|
|
|
|
|
<result name="success">/WEB-INF/views/validation/success.jsp</result>
|
|
|
|
|
<result name="input">/WEB-INF/views/validation/form.jsp</result>
|
2026-03-18 15:18:30 +08:00
|
|
|
</action>
|
|
|
|
|
</package>
|
2026-03-18 18:12:20 +08:00
|
|
|
|
2026-03-24 09:18:13 +08:00
|
|
|
<package name="rest" namespace="/api" extends="json-default">
|
2026-03-24 16:00:44 +08:00
|
|
|
<interceptors>
|
|
|
|
|
<interceptor name="auth" class="com.demo.action.interceptor.AuthInterceptor"/>
|
|
|
|
|
<interceptor-stack name="secureStack">
|
|
|
|
|
<interceptor-ref name="auth"/>
|
|
|
|
|
<interceptor-ref name="defaultStack"/>
|
|
|
|
|
</interceptor-stack>
|
|
|
|
|
</interceptors>
|
2026-03-18 18:12:20 +08:00
|
|
|
<action name="users" class="com.demo.action.rest.UserRestAction" method="execute">
|
2026-03-24 16:00:44 +08:00
|
|
|
<interceptor-ref name="secureStack"/>
|
2026-03-18 15:18:30 +08:00
|
|
|
<result type="json"/>
|
|
|
|
|
</action>
|
|
|
|
|
</package>
|
2026-03-18 18:12:20 +08:00
|
|
|
</struts>
|