Struts2框架学习

基础

实战

配置文件

文件1:

<?xml version="1.0" encoding="UTF-8"?>
// 声明这是一个 XML 文件,且使用 UTF - 8 编码
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
        "http://struts.apache.org/dtds/struts-2.5.dtd">
// 指定文档类型定义(DTD),此 DTD 为 Struts 2.5 版本的配置文件。
<struts>
// Struts 2 配置文件的根元素
	<constant name="struts.convention.default.parent.package" value="crud-default" />
	// 指定使用 Convention 插件时,Action 类默认的父包为 crud-default
	<constant name="struts.convention.package.locators" value="web" />
	// Convention 插件搜索 Action 类的包定位器,这里指定为 web
	<constant name="struts.multipart.maxSize" value="10485760"/> 
	// 设置文件上传的最大大小为 10485760 字节(即 10MB)
	<constant name="struts.convention.package.locators.basePackage" value="com.cqxp.jxt.web" />
	// Convention 插件搜索 Action 类的基础包为 com.cqxp.jxt.web
	<constant name="struts.enable.DynamicMethodInvocation" value="true" />
	// 启用动态方法调用
	<constant name="struts.multipart.saveDir" value="/tmp"></constant>
	// 文件上传时临时保存的目录为 /tmp。
	<constant name="struts.convention.action.mapallmatches" value="true"/>
	// Convention 插件是否映射所有匹配的 Action
	<constant name="struts.devMode" value="false" />
	// 是否开启开发模式,这里设置为 false 表示关闭
	// crud-default 包配置
	<package name="crud-default" extends="convention-default,json-default">
	// 该包继承自 convention-default 和 json-default 包
		<interceptors>
		// 定义拦截器栈
			<interceptor-stack name="crudStack">
				<interceptor-ref name="store">
					<param name="operationMode">AUTOMATIC</param>
				</interceptor-ref>
				<interceptor-ref name="paramsPrepareParamsStack" />
			</interceptor-stack>
		</interceptors>

		<default-interceptor-ref name="crudStack" />
		<global-results>
			<result name="home">/authentication/manager-home.jsp</result>
		</global-results> 
		<global-allowed-methods>regex:.*</global-allowed-methods>
	</package>

	/*
		使用Convention插件,实现约定大于配置的零配置文件风格.
	           特殊的Result路径在Action类中使用@Result设定. 
	*/
	
	// 微信网页配置
	<package name="wechat" extends="crud-default" namespace="/">  
	    
	    //拦截器
        <interceptors>  
            <interceptor name="MobilePageInterceptor" class="com.cqxp.jxt.web.MobilePageInterceptor">
			</interceptor>  
            //拦截器栈
            <interceptor-stack name="stackMobilePageInterceptor">  
                <interceptor-ref name="MobilePageInterceptor"></interceptor-ref>  
                <interceptor-ref name="defaultStack"></interceptor-ref>
            </interceptor-stack>  
        </interceptors> 	    
	    <default-interceptor-ref name="stackMobilePageInterceptor" />	    
	    <global-allowed-methods>regex:.*</global-allowed-methods>
	</package>	
</struts>

NameSpaces

@Namespace("/")
// 定义了 Struts2 中 Action 的命名空间。
// 命名空间用于区分不同的模块或功能组。
// 如果 URL 请求匹配到 / 命名空间下的某个 Action,则会触发该类。
@Scope("prototype")
// 定义了 Spring 容器中该类的实例化范围
// prototype 表示每次请求都会创建一个新的实例
@Results({ 
// 定义了 Struts2 中 Action 方法的返回值与视图资源之间的映射关系。
		@Result(name = "index", location = "app-index.jsp"),
		@Result(name = "regapp", location = "app-regapp.jsp")
		})
// 每个 @Result 定义了一个逻辑视图名称(如 "index")和对应的物理资源路径(如 "app-index.jsp")。
// 触发机制:
// 请求 /index.action 会触发 AppAction 类中的 index 方法。
// 请求 /regapp.action 会触发 AppAction 类中的 regapp 方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值