day30_struts2_valueStack
来源:互联网 发布:手机淘宝销量排名 编辑:程序博客网 时间:2024/06/09 19:28
回顾
一、输入验证
客户端和服务器端验证
1、编程式验证 前提:动作类继承ActionSupport a、针对动作类中的全部动作方法 public void validate(){ //针对不符合条件的 addFieldError(字段名,提示信息); } b、针对动作类中的某个/些动作方法 public void validateXxx(){Xxx动作方法首字母大写后的 } 使用@SkipValidation注解 验证不通过: 会转向一个input的逻辑视图,一般指向输入页面。回显数据最好用struts2的标签。 错误消息提示:动作类名.properties invalid.fieldvalue.字段名=你的提示2、声明式验证 a、针对动作类中的全部动作方法 在动作类所在的包中,添加验证文件:动作类名-validation.xml b、针对动作类中的某个/些动作方法 在动作类所在的包中,添加验证文件:动作类名-动作名(配置文件中的)-validation.xml 配置文件中,验证的字段名和表单的name保持一致即可。 原理:是由validation、workflow拦截器负责处理。3、Struts2内置的验证器 xwork-core-**.jar com.opens.......validators\default.xml4、自定义声明式验证器 a、编写一个类,继承FieldValiateSupport b、在构建路径顶端建立validtors.xml的配置文件。声明验证器 c、可以像使用内置验证器的形式去使用了。
二、国际化:i18n
三、拦截器
1、这部分是struts2的功能核心2、自定义拦截器:执行过程 a、编写一个类,继承AbstractInterceptor b、声明拦截器 c、在动作中使用:使用了任何一个拦截器,默认的将失效。3、小案例: 动作方法执行前,验证用户是否登录拦截器。对动作类中的所有动作方法进行拦截4、MethodFilterInterceptor:可以指定哪些方法被拦截或不被拦截5、struts2中常用的拦截器
四、文件上传
动作类书写有要求:
private File photo;//和表单的上传输入域名字保持一致 private String photoFileName; private String photoContentType;
配置拦截器:参数。
一、多文件上传
二、文件下载:结果类型的使用
名字为stream的结果类型处理文件下载。
1、动作类的书写遵守一定的规范
2、struts.xml配置文件
三、OGNL表达式简介
前提:在struts2中要使用OGNL表达式,必须放到Struts2的标签中。
1、OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,
它是一个开源项目。webwork用它作为表达式语言。
2、其他重要的功能
a、支持对象方法调用,如xxx.doSomeSpecial();
b、支持类静态的方法调用和值访问
c、访问OGNL上下文(OGNL context)和ActionContext;
d、操作集合对象。
四、context上下文:数据中心
contextmap中的数据
动作类的生命周期:每次访问都会重新创建新的动作类的实例。还会创建ActionContext和ValueStack的实例。ActionContext和
ValueStack一直保持在你的线程中。(ThreadLocal)。
1、ActionContext的API:操作contextMap中的数据的
PS:ContextMap是xwork中的东西,struts2的核心就是xwork中的ognl,但是为了方便使用,所以就在ContextMap的基础上添加了root栈,ContextMap和root栈组成了值栈,值栈如下图所示:
2、ValueStack的API:操作contextMap中根的数据
ValueStack的常用方法:
五、OGNL的其他用法
1、在JSP中使用ONGL显示contextMap/根中的数据
获取contextMap中的数据,OGNL表达式要用#开头
获取根(List)中的对象的属性,直接写属性的名称。会从栈顶的对象一致往下找。
2、OGNL的其他用法
a、在JSP中取数据,可以使用OGNL表达式,也可以使用EL表达式
EL表达式在Struts2中,被做了小小的改动。
Struts2对原始的HttpServletRequest(服务器提供)进行包装,
org.apache.struts2.dispatcher.StrutsRequestWrapper
b、在JSP页面中利用OGNL构造List对象和Map对象
c、字符串和OGNL互换
d、在配置文件中xml或properties也可以使用OGNL表达式,请使用${ognl}
六、Struts2中的常用标签
常用的通用标签
防止表单重复提交:超简单
Struts2和Spring集成
- day30_struts2_valueStack
- Mac下安装iPython
- Android5.0后的ViewGroup添加子View问题
- 对于VS2012的位图无法加载到资源视图“Bitmap”中的解决方案
- android MediaPlayer简易播放器
- C++之lib和dll实例及简单分析
- day30_struts2_valueStack
- STM32使用MCUISP下载程序教程
- Linux-ubuntu 日记( 2 )- 建立一个MySQL数据库
- Android初级知识--自定义任何样式的对话框
- Unity正则表达式账号密码验证
- MYSQL使用正则表达式过滤数据
- Android Studio 插件无缘无故就消失了
- 紫书章六例题一(双端口队列)
- 第四次作业