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 641类implements Result接口 或者 extends ... -
struts2day06 Struts2.0的result
2012-07-16 12:01 855Struts2.0的result Action ... -
struts2day06学习笔记
2012-07-16 10:55 8261.new String(xxx.getBytes(),&qu ... -
struts2day05异常处理
2012-07-13 23:13 797Struts2.0的异常处理机制 1.什么是异常?软件在 ... -
Struts2day05学习笔记
2012-07-13 22:19 6351.自定义拦截器 1.im ... -
Struts2day04Struts2.0文件的下载
2012-07-13 08:26 6421.写一个Action,在DownloadAction ext ... -
Struts2day04Struts2.0文件的上传
2012-07-13 08:20 6221、在服务器端提供一个文件夹存放提交的文件,upload文件夹 ... -
Struts2day04Struts2.0实现阻止表单重复提交
2012-07-12 21:01 5831.使用叫做token的拦截器,在表单中加入<s:tok ... -
Struts2day04对Action的方法进行过滤拦截
2012-07-12 20:38 17461.写一个Action类 UserManagerAction ... -
Struts2day04判断用户是否登录
2012-07-12 19:37 8281.在拦截器中获得用户登录的session 在LoginC ... -
Struts2day04测试程序的执行效率,拦截器栈,在Action中覆盖拦截器的属性值
2012-07-12 18:58 11511.在LoginAction.java中,extends Ac ... -
Struts2学习笔记day04
2012-07-12 00:31 5951.自定义类型转换 1.写一个类 extends S ... -
Struts2day03Struts2.0提供的数据格式校验
2012-07-11 21:52 688Struts2.0提供的数据格式校验 js校验:存在被 ... -
Struts2day03Struts2.0国际化
2012-07-11 21:09 719Struts2.0国际化 B/S结构中为网页提供多国 ... -
Struts2day03OGNL自定义类型转换
2012-07-11 20:47 758Struts2.0框架不能够或者不能完整的进行自动类型转换 ... -
Struts2day02多个对象提交
2012-07-10 07:15 1154在listUser.jsp页面 <%@ page la ... -
Struts2day02表单标签
2012-07-10 07:15 6411.在struts2Form.jsp中 <%@ ... -
struts2day02访问ValueStack中的数据以及访问Context中的对象
2012-07-10 07:14 10231.在show.jsp页面 <%@ page lang ... -
Struts2day02动态方法调用
2012-07-10 07:14 6241.在opt.jsp页面 <%@ page langu ... -
Struts2day02使用通配符调用指定的方法
2012-07-10 07:14 7021.在opt.jsp页面 <%@ page langu ...
相关推荐
学习Struts2第三天笔记
struts2学习笔记总结
struts2学习笔记,非本人所写,但有学习的价值,总结的很好,分享一个!
Struts2学习笔记,介绍了struts2的基础部分
传智2016的视频配套struts2_day03讲义struts2_day03讲义struts2_day03讲义
这是学习struts2时记得重点笔记,包括了一些原理,ognl语句的编写,以及如何设置拦截器等等一些基本知识,起到复习和巩固的作用
struts2学习笔记struts2学习笔记struts2学习笔记
struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换
本人学习struts2的笔记,希望大家可以多多学习以后共同交流
学习Struts2第四天笔记
1. struts2框架的引入 1)把struts2的相关jar包导入到项目中去 2)把struts2框架的配置文件struts.xml复制粘贴到项目中的src下面(同时也可以把log4j.properties放到src下) 在这里我们主要是要的这个struts.xml文件...
structs2很详细的学习笔记,structs2的建造,工作原理,例子,逐步讲解,纯文字的
namespace :对应与项目名称后面的"/"(例如Struts2_0100_Introduction后面的"/") (http://localhost:8080/Struts2_0100_Introduction/) 四、 标签 是用来解决重名的问题,例如当系统的前台和后台都有一个action...
struts2四天的学习笔记。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
个人收藏,纯属备份作用,做个记录,方便需要时候查看