struts2 基础(3)

本文详细介绍了Struts2框架的基本流程、配置方法及各种配置元素的使用,包括拦截器、结果类型、异常处理等内容。
一、基本流程:
1、	核心控制器FilterDIspatcher
2、	业务逻辑控制器
3、	模型组件(没有提供实现)
4、	视图组件
支持jsp,freemarker,velocity等,通过result元素的type属性指定视图资源类型,默认是jsp类型
二、基本配置:
1、Web.xml配置
2、struts.xml文件
可将struts.xml文件分解:
因为struts配置文件默认继承了struts-default包空间,Strut2的核心包下struts-default.xml文件默认加载,其内部定义了result结果类型、系列拦截器等。
1)	Bena 配置:
Struts2以可配置的方式管理核心组件,组件的实现类部署在IoC容器中即可。Struts的bean通常有两个作用:
1、	创建bean实例,该实例作为struts的核心组件使用
2、	Bean的静态方法需要一个值注入。
对于struts2而言,一般不需要定义bean组件,也就不需要在struts.xml文件中配置bean
2)	常量配置struts.properties
Sturts2加载常量的顺序:
Struts-default.xml
Struts-plugin.xml
Struts.xml
Struts.properties
Web.xml
Struts.xml文件中通过<constant>来配置常量,对应的属性为name和value
3)	包配置
<package    name = “” >
必须制定name属性,这个属性是引用该包的key
Extend属性,继承其他的包,可以继承其他包得Action、Interceptor等
Namespace:定义命名空间。(请求Action时加上命名空间)
Abstract:定义该包是否为抽象包。
4)	包含配置
<struts>
		<include file=”struts-shop.xml” />
<include file=” struts-user.xml” />
</struts>
5)	拦截器配置
例如:
<interceptors>
		<interceptor name=”” class=”” >
		<interceptor-stack   name= “”>
			<interceptor-ref  name= “’ />
     </interceptor-stack>
</interceptors>
6)	访问servlet api
ActionContext
Get(Object) 模拟HttpServletRequest 对象的getAttribute(String)
getApplication() 返回Map对象,模拟SerletContext
getContext() 返回系统的ActionContext对象
getParameters() 返回Map对象,获取所有的请求参数
getSession()返回Map对象,模拟HttpSession对象
直接访问servlet api:
1、实现ServletContextAware
	    ServletRequestAware
ServletResponseAware
3、	ServletActionContext
getPageCotext();
getRequest();
getResponse();
getServletContext();
7)	配置Action
<package >	
		<action  name= “”  class=”” >
	    	<result  />
		</action>
</package>
8)	动态方法调用
action=”ActionName!methodName.action”

targetForm.action = “Login!regist.action”会被Action的regist()方法处理
默认会被execute处理
9)	为<action>元素指定method属性
<action  name=”login” class=”com.Login”  method=”login” >
		……
</action>
10)使用通配符
<action  name=”*Login” class=”com.Login” method=”{1}”>
如果请求的url为loginLogin请求的就是Login的login方法
11)默认Action
配置一个默认的action
<default-action-ref   name=””  />
3、struts.properties配置文件





4、配置结果
	1)局部结果:<result>作为<action>子元素配置
	<action …>
<result>
		  <param name="location"></param>
	    </result>
</action>
Param两个参数:
Location:逻辑视图对应的实际视图资源
Parse:是否使用OGNL表达式,默认为true
2)全局结果:
<global-results>
		<result></result>
	</global-results>
5)支持的结果类型

struts2的结果类型实现了com.opensymphony.xwork2.Result接口 
type支持的结果类型: 
chain:用来处理Action链 
chart:整合JFreeChart的结果类型 
dispatcher:用来转向页面,通常处理JSP 
freemaker:处理FreeMarker模板 
httpheader:控制特殊HTTP行为的结果类型 
jasper:用于JasperReports整合的结果类型 
jsf:JSF整合的结果类型 
redirect:重定向到一个URL 
redirect-action:重定向到一个Action 
stream:向浏览器发送InputSream对象,通常用来处理文件下载,还可用于返回AJAX数据 
tiles:与Tiles整合的结果类型 
velocity:处理Velocity模板 
xslt:处理XML/XLST模板 
plaintext:显示原始文件内容,例如文件源代码

dispatcher 结果类型为缺省的result类型,用于返回一个视图资源(如:jsp)
Xml代码 :
<result name="success">/main.jsp</result> 
<result name="success">/main.jsp</result>
以上写法使用了两个默认,其完整的写法为:
   <result name="success" type="dispatcher"> 
     <param name="location">/maini.jsp</param> 
</result> 
location只能是页面,不能是另一个action(可用type="chain"解决)。
redirect 结果类型用于重定向到一个页面,另一个action或一个网址。
Xml代码:
<result name="success" type="redirect">aaa.jsp</result> 
<result name="success" type="redirect">bbb.action</result> 
<result name="success" type="redirect">www.baidu.com</result>
redirect-action 结果类型使用ActionMapperFactory提供的ActionMapper来重定向请求到另外一个action
Xml代码:
<result name="err" type="redirect-action"> 
    <param name="actionName">重定向的Action名</param> 
     <param name="namespace">重定向Action所在的名字空间</param> 
</result> 
redirect和redirect-action两种结果类型在使用上其实并没有什么区别,只是写法不同而已。
chain 用于把相关的几个action连接起来,共同完成一个功能。
Xml代码:
<action name="step1" class="test.Step1Action"> 
     <result name="success" type="chain">step2.action</result> 
</action> 
<action name="step2" class="test.Step2Action"> 
<result name="success">finish.jsp</result> 
</action> 
处于chain中的action属于同一个http请求,共享一个ActionContext
   
plaintext 结果类型用于直接在页面上显示源代码
Xml代码:
<result name="err" type="plaintext"> 
    <param name="location">具体的位置</param> 
    <param name="charSet">字符规范(如GBK)</param> 
</result>
5、设置请求参数
<result type=”redirect”>edit.action?param=${属性.属性}</result>(${属性}对应Action里的属性)
6、属性驱动和模型驱动
属性驱动:使用属性作为贯彻MVC流程的信息携带者
模型驱动:使用单独的JAVA BEAN来贯彻整个MVC流程
模型驱动的实现必须实现ModelDriven接口
Public class LoginAction implement ModelDriven<UserBean>{
	Private  UserBean  model = new UserBean();
	Public  String  execute(){
	}
	Public UserBean getModel(){
		Return  model;
}
}
7、异常处理
1)局面异常映射
<exception-mapping >作为<action>子元素配置
2)全局异常映射
<exception-mapping >作为<global-exception-mappings>的子元素

<exception-mapping result="failer" exception="java.lang.Exception"></exception-mapping>
<result name="input">/admin/login.jsp</result>
<result name="success">/index.jsp</result>
<result name="failer">/admin/login.jsp</result>

输出异常信息:
<s:property  value=”exception” />
<s:property  value=”exceptionStack” />


下载前可以先看下教程 https://pan.quark.cn/s/a426667488ae 标题“仿淘宝jquery图片左右切换带数字”揭示了这是一个关于运用jQuery技术完成的图片轮播机制,其特色在于具备淘宝在线平台普遍存在的图片切换表现,并且在整个切换环节中会展示当前图片的序列号。 此类功能一般应用于电子商务平台的产品呈现环节,使用户可以便捷地查看多张商品的照片。 说明中的“NULL”表示未提供进一步的信息,但我们可以借助标题来揣摩若干核心的技术要点。 在构建此类功能时,开发者通常会借助以下技术手段:1. **jQuery库**:jQuery是一个应用广泛的JavaScript框架,它简化了HTML文档的遍历、事件管理、动画效果以及Ajax通信。 在此项目中,jQuery将负责处理用户的点击动作(实现左右切换),并且制造流畅的过渡效果。 2. **图片轮播扩展工具**:开发者或许会采用现成的jQuery扩展,例如Slick、Bootstrap Carousel或个性化的轮播函数,以达成图片切换的功能。 这些扩展能够辅助迅速构建功能完善的轮播模块。 3. **即时数字呈现**:展示当前图片的序列号,这需要通过JavaScript或jQuery来追踪并调整。 每当图片切换时,相应的数字也会同步更新。 4. **CSS美化**:为了达成淘宝图片切换的视觉效果,可能需要设计特定的CSS样式,涵盖图片的排列方式、过渡效果、点状指示器等。 CSS3的动画和过渡特性(如`transition`和`animation`)在此过程中扮演关键角色。 5. **事件监测**:运用jQuery的`.on()`方法来监测用户的操作,比如点击左右控制按钮或自动按时间间隔切换。 根据用户的交互,触发相应的函数来执行...
垃圾实例分割数据集 一、基础信息 • 数据集名称:垃圾实例分割数据集 • 图片数量: 训练集:7,000张图片 验证集:426张图片 测试集:644张图片 • 训练集:7,000张图片 • 验证集:426张图片 • 测试集:644张图片 • 分类类别: 垃圾(Sampah) • 垃圾(Sampah) • 标注格式:YOLO格式,含实例分割的多边形点坐标,适用于实例分割任务。 • 数据格式:图片文件 二、适用场景 • 智能垃圾检测系统开发:数据集支持实例分割任务,帮助构建能够自动识别和分割图像中垃圾区域的AI模型,适用于智能清洁机器人、自动垃圾桶等应用。 • 环境监控与管理:集成到监控系统中,用于实时检测公共区域的垃圾堆积,辅助环境清洁和治理决策。 • 计算机视觉研究:支持实例分割算法的研究和优化,特别是在垃圾识别领域,促进AI在环保方面的创新。 • 教育与实践:可用于高校或培训机构的AI课程,作为实例分割技术的实践数据集,帮助学生理解计算机视觉应用。 三、数据集优势 • 精确的实例分割标注:每个垃圾实例都使用详细的多边形点进行标注,确保分割边界准确,提升模型训练效果。 • 数据多样性:含多种垃圾物品实例,覆盖不同场景,增强模型的泛化能力和鲁棒性。 • 格式兼容性强:YOLO标注格式易于与主流深度学习框架集成,如YOLO系列、PyTorch等,方便研究人员和开发者使用。 • 实际应用价值:直接针对现实世界的垃圾管理需求,为自动化环保解决方案提供可靠数据支持,具有重要的社会意义。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值