1.值栈:ValueStack,存储数据
root区【栈】:Action对象中的数据,其他数据
Context【Map结构】:
application: #application.user=>servletContext.getAttribute("user");
session
request
paramteres:#paramteres.id[0]=>request.getParamter("id");
attr[attribute]:从属性范围由小到大依次查找
action:Action对象
2.OGNL:对象图导航语言
<s:property value=""/> 显示
<s:bean var="引用" name="类的全路径">
<s:param name="属性">值</s:param>
</s:bean>
迭代处理的对象都会压入Context区域,访问迭代出来的对象必须加#
<s:iterator var="迭代出来的对象" value="集合" status="迭代状态">
...
</s:iterator>
if/else/elseif
集合的过滤
集合对象.{?#this.name=='值'}
?:符合条件的所有结果
^:符合条件的第一个结果
$:符合条件的最后一个结果
3.OGNL语句自定类型转换
Struts2.0框架不能够或者不能完整的进行自动类型转换时采用自定义类型转换
自定义类型转换器
1.开发一个类,extends StrutsTypeConverter
2.配置文件,声明自定义类型转换器
局部的类型转换器:
配置文件的名称: actionName-conversion.properties
配置文件的位置: 和Action放在同一个目录结构当中
配置文件的内容: Action中需要类型转换器的属性=自定义类型转换器的全路径
全局的类型转换器
配置文件的名称: xwork-conversion.properties
配置文件的位置: 在src目录下面
配置文件的内容: 需要进行类型转换的类型=自定义类型转换器的全路径
局部类型转换:只针对某一个Action的某一个属性进行转换
全局类型转换:对所有Action对象中该类型的属性进行转换
4.Struts2.0国际化
B/S结构中为网页提供多国语言的支持
1.B/S架构为每一个语言提供一套页面
缺点:修改页面风格,每一套都必须修改
2.B/S国际化是Struts2.0的半成品
只要提供一套页面,不同国家访问时就能看到相应的文字
1.知道用户的所在国家
浏览器使用国别码来识别地区
2.所在国家文字的提供,在一个页面中可以显示中文或者英文
e.properties{username password}
c.properties{用户名 密码}
login.jsp
占位符占位<input type="text" name="username"/>
Struts2.0国际化开发过程
1.提供文字的配置文件(资源文件)
1)位置:src目录下面
2)命名:xxx.properties
appRes_zh_CN.properties(中文的资源文件)
注意:在处理非拉丁语系的时候,要先转换成unicode编码
使用 native2ascii命令
native2ascii -encoding gbk 源文件名 目标文件名
native2ascii -encoding gbk appRes.properties appRes_zh_US.properties
appRes_en_US.properties(英文的资源文件)
2.在struts.xml文件中进行配置
<constant name="struts.custom.i18n.resources" value="appRes"></constant>
3.在jsp页面中使用占位符站位
使用Struts2.0提供的<s:text name="资源文件的key"/>进行占位
5.Struts2.0提供的数据格式校验
js校验:存在被用户篡改的风险
Struts2.0提供的校验步骤
1.获得数据:使用Action的属性进行封装
2.对获得的数据进行判断(方法)
Struts2.0的ActionSupport提供了validate方法进行数据格式校验
3.在Struts.xml中配置异常跳转
在Struts2.0体系中为异常以及错误定义了固定的result
name=input //
显示错误信息:<s:fielderror></s:fielderror>
<s:fielderror><s:param>key</s:param></s:fielderror>
数据格式校验的方法
js Struts2.0
优点: 客户端,效率高 安全
缺点: 容易被篡改 访问服务端,浪费资源
实际开发中:js+Struts2.0
6.Struts2.0拦截
拦截器:为访问Action的请求增加额外功能
保证程序的继续执行
7.如何开发一个拦截器
1.开发一个类 implements Interceptor
2.struts.xml配置文件
1 <!-- 声明拦截器 -->
<interceptors>
<interceptor name="MyInterceptor" class="zx.struts2.day3.interceptor.MyInterceptor"></interceptor>
</interceptors>
自定义了拦截器,Struts2.0提供的默认拦截器失效
2.在需要调用拦截器的action中配置
在Action中引用拦截器的顺序决定了拦截器的执行顺序
如果有多个拦截器是成组调用时,可以设置拦截器栈
发表评论
-
struts2day06 自定义结果
2012-07-16 12:14 673类implements Result接口 或者 extends ... -
struts2day06 Struts2.0的result
2012-07-16 12:01 950Struts2.0的result Action ... -
struts2day06学习笔记
2012-07-16 10:55 8521.new String(xxx.getBytes(),&qu ... -
struts2day05异常处理
2012-07-13 23:13 834Struts2.0的异常处理机制 1.什么是异常?软件在 ... -
Struts2day05学习笔记
2012-07-13 22:19 6751.自定义拦截器 1.im ... -
Struts2day04Struts2.0文件的下载
2012-07-13 08:26 6761.写一个Action,在DownloadAction ext ... -
Struts2day04Struts2.0文件的上传
2012-07-13 08:20 6501、在服务器端提供一个文件夹存放提交的文件,upload文件夹 ... -
Struts2day04Struts2.0实现阻止表单重复提交
2012-07-12 21:01 6231.使用叫做token的拦截器,在表单中加入<s:tok ... -
Struts2day04对Action的方法进行过滤拦截
2012-07-12 20:38 17811.写一个Action类 UserManagerAction ... -
Struts2day04判断用户是否登录
2012-07-12 19:37 8691.在拦截器中获得用户登录的session 在LoginC ... -
Struts2day04测试程序的执行效率,拦截器栈,在Action中覆盖拦截器的属性值
2012-07-12 18:58 11861.在LoginAction.java中,extends Ac ... -
Struts2学习笔记day04
2012-07-12 00:31 6201.自定义类型转换 1.写一个类 extends S ... -
Struts2day03Struts2.0提供的数据格式校验
2012-07-11 21:52 716Struts2.0提供的数据格式校验 js校验:存在被 ... -
Struts2day03Struts2.0国际化
2012-07-11 21:09 764Struts2.0国际化 B/S结构中为网页提供多国 ... -
Struts2day03OGNL自定义类型转换
2012-07-11 20:47 806Struts2.0框架不能够或者不能完整的进行自动类型转换 ... -
Struts2day02多个对象提交
2012-07-10 07:15 1187在listUser.jsp页面 <%@ page la ... -
Struts2day02表单标签
2012-07-10 07:15 6651.在struts2Form.jsp中 <%@ ... -
struts2day02访问ValueStack中的数据以及访问Context中的对象
2012-07-10 07:14 10471.在show.jsp页面 <%@ page lang ... -
Struts2day02动态方法调用
2012-07-10 07:14 6521.在opt.jsp页面 <%@ page langu ... -
Struts2day02使用通配符调用指定的方法
2012-07-10 07:14 7291.在opt.jsp页面 <%@ page langu ...
相关推荐
学习Struts2第三天笔记
学习Struts2第四天笔记
学习Struts2第一天的笔记
学习Struts2第二天笔记
Day03可能涵盖Struts2的拦截器机制,这是Struts2的一大特色,可以实现如日志记录、权限验证、性能优化等多种功能。同时,可能会讲解如何自定义拦截器,以及在实际项目中如何组合使用不同的拦截器链。 Day04可能涉及...
通过传智播客的struts2框架2016版day01课程,你可以系统地掌握Struts2的基础知识,为后续的深入学习和项目开发打下坚实的基础。同时,结合笔记和思路图,可以更好地理解和吸收所学内容,提升学习效率。在实际编程中...
### Struts2框架概述 #### 1.1 什么是Struts2框架? **Struts2框架** 是一个基于MVC(Model-View-Controller)架构的开源Java Web应用程序框架,它简化了Java Web应用程序的开发过程。Struts2提供了一种简洁而强大...
6. **实例分析**:可能包含多个日志记录(day01至day03)的项目实践,逐步深入理解Struts2和Hibernate的使用。 通过这些文档,你可以系统地学习到Struts2和Hibernate的基本概念、配置、使用方法以及在实际项目中的...
标题中的“传智168期JavaEE struts2杜宏 day 29~day31笔记”暗示了文档是一系列关于JavaEE技术栈中的Struts2框架的课程笔记,由杜宏教授,并且特别强调了是从29天到31天的学习内容。JavaEE(Java Platform, ...
教程分为6个部分,从基础到深入,分别是day01、day02、day03、day04、day05和day06,这表明教程按照学习路径进行组织,帮助你在一周内掌握Struts2的关键知识。 首先,day01可能涵盖了Struts2的基本概念,包括MVC...
2016年版本的Struts2资料集合了学习笔记、源代码和思路图,旨在帮助开发者深入理解并熟练运用这个框架。以下是关于Struts2框架的一些核心知识点: 1. **简介**: Struts2是Struts1的升级版,解决了Struts1中的一些...
- **反射**:`DAY03【反射基础】.docx`涵盖了反射机制,它使得程序在运行时能够获取类的信息(如类名、属性、方法)并动态调用。反射在创建动态代理、序列化、框架设计等方面有广泛应用。 - **注解(Annotation)...
崔希凡老师的JavaWeb笔记涵盖了从day24到day28的内容,这五天的教程主要涉及了JavaWeb开发中的核心技术和实践应用。在JavaWeb领域,这些天的学习通常是项目开发周期中的关键阶段,涵盖了从数据库交互、Servlet编程、...
《传智播客2016版hibernate+struts2+Spring框架学习资源详解》 在IT行业中,框架的使用是开发高效、稳定应用的关键。本资源包聚焦于三大主流Java Web框架:Hibernate、Struts2和Spring,它们在2016年时仍然是开发者...
在"day03 拾遗"中,特别提到了小数的取模运算。需要注意的是,Java中的小数取模与整数有所不同,可能会导致非预期的结果。例如,12.12%2.2的结果是1.1199,而8.8%2的结果是0。这是因为浮点数的取模运算并不总是精确...
在提供的压缩包文件中,"day03.txt"可能是课程笔记或讲解大纲,"struts2_04"和"struts2_02"可能包含更深入的示例代码或讲解资料,可以帮助我们进一步理解和实践Struts2的相关概念和技术。通过深入研究这些资源,...
在"黑马程序员_javaWEB讲义和笔记资料_day08"中,我们可以预见到这一天的学习内容将深入到Java Web开发的核心概念和技术。"传智播客"作为知名的技术教育机构,其课程通常涵盖全面且深入的IT知识,因此这些讲义和笔记...
- 主流框架:如Struts、Spring、Hibernate(SSH),以及Ajax,掌握其工作原理和应用。 - UML建模:理解统一建模语言,用于系统设计。 - 设计模式:掌握常见的设计模式,如单例、工厂、观察者等,提升代码质量和可...
short 16bit, -2^15~2^15-1 (2^15=32768) int 32bit, -2^31~2^31-1 (2147483648,20亿,10位有效数字) long 64bit, -2^63~2^63-1 (900亿亿,20位有效数字) float 32bit, 9位有效数字,含小数(四舍五入)(小数点算...
以上内容只是根据文件名进行的推测,实际的学习笔记和源码可能会提供更详细的信息,帮助读者深入了解Spring框架的各个方面。通过这些资料,开发者可以逐步掌握Spring的基本概念,进而利用Spring进行高效的企业级应用...