struts2学习笔记2

serveltAPI里面有什么?
Web容器提供的各种内置对象,request,session,application等。
struts2要获取这类对象需要:1.ActionContext(推荐)
                                               2.ServletActionContext(可以获取HttpServletRequest等)
                                               3.特定接口


ActionContext
包含了每个请求的参数


值栈:struts2提供的一个存储区域,是一个栈结构,用来存储Action实例。

OGNLO(对象图导航语言),类似于JSTL,用来访问值栈中的数据。

局部类型转换:
定义一个类继承“DefaultTypeConvert”,然后重写“public Object convertValue(Object value, Class toType)”
注意:value是一个字符串数组,如果要转换的类型是Date,需要手动导入java.util.Date.
定义好转换器后,需要在Action同目录下创建与该Action对应的配置文件“Action类名-conversion.properties”
例如:birthday = com.converter(包名).DataConverter(类名)
以上只能转换指定Action中的数据类型。

局部类型转换:
全局类型的配置文件需要“work-conversion.properties”命名,然后需要将此文件放入src根目录。
例如:java.util.Date = com.converter. DataConverter

有时需要自定义拦截器:一般继承AbstracInterceptor抽象类。
注意:在 action中加入了自定义的拦截器后,需要在后面还要加上默认的拦截器“defaultStack”.

action拦截只能拦截部分代码,并且当action过多会出现大量重复代码,这时候需要出现全局拦截。
注意:在使用全局拦截器时,由于拦截器的值只能由一个,因此在所有被拦截的Action中都需要配置与拦截器返回值相同的result,也就是说需要将此返回值配置为全局结果集(global-result),否则拦截器会拦截所有的action。

另外:有些action不希望被拦截,例如登陆,登出,注册等。
两种办法;1.将这些功能直接放入jsp页面,不放入action。不要暴露实际操作的jsp页面。
                  2.将这些功能的action直接放入另外一个包中,或者使用方法拦截。(定义拦截器执行MethodFilterInceptor,另外,在interceptor-ref的子节点中,在param name=“includeMethods 中添加指定的被拦截的方法 param name=“includeMethods 中指定不拦截哪些方法)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值