struts2学习

本文对比了Struts1、Webwork及Struts2的特点,指出Struts1支持技术单一且与Servlet API耦合紧密;Webwork改进了这些问题,并支持更多表现层技术;而Struts2在Webwork基础上进一步发展,引入了新的命名规范等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Struts1 缺陷:
1.支持的表现层技术单一,只支持JSP
2.与Servlet API严重耦合,难于测试
public ActionForward LinkManageContactListAction(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {}
3.代码严重依赖于Struts1 API,属于侵入式设计

Webwork相对于Struts1优点:
1.Action无需与Servlet API耦合,难于测试
2.Action无需与Webwork耦合,代码重用率高
3.支持更多的表现层技术,有更好的适应性

Strut2与Webwork相比
1.命名改变
2.不再支持webwork的AroundInterceptor
3.不再支持webwork的富文本编辑器,应适用Dojo
4.不再支持内建的IOC容器,支持spring IOC

当Action设置了某个属性值后,Struts2将这些属性值全部封装在一个叫struts.valueStack的请求属性里面,Action中的属性名可以理解为
ValueStack中的value的名字

ActionSupport
当用户提交请求时,请求得到execute方法处理之前,先会被validate方法处理,如果该方法处理结束后,Action的fieldErrors里的校验错误
不为空,请求会被转发给input逻辑视图. addFieldError("username","user.required");

Action只是一个控制器,它并不直接对浏览者生成任何响应,所以在Action中通过HttpServletResponse来生成服务器响应是不可能的。系统是通过Action对应的getter和setter方法来处理请求参数的,而不是通过Action属性名来处理请求参数的。

动态方法调用是通过struts.enable.DynamicMethodInvocation变量设定???

对于redirect和redirect-action两种结果类型,都是重新生成一个新请求,区别是前者通常用于生成一个对具体资源的请求,后者通常用于生成一个对其他Action的请求。两个结果类型都会丢失请求参数、请求属性和前一个Action的处理结果。
<action>
<result name="error" type="redirect-action">error</result>
</action>

<action>
<result name="success" type="redirect">/${target}.jsp?name=${currentSkill.name}</result>
</action>
</action>

模型驱动使用使用单独的VO(值对象)来封装请求参数和处理结果,属性驱动则使用Action实例来封装请求参数和处理结果。

setFileUploadName ?????
权限拦截
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值