==========================================OGNL=================================
OGNL:Object Graph Navigation Language
1.取代页面中Java脚本,简化数据访问
2.和EL一样是表达式语言,功能更强大
功能和特点:
1.能存取对象的属性,也能调用对象的方法
2.能访问静态方法、静态属性
3.能访问值栈及StackContext
4.能操作集合对象
5.支持赋值、运算操作、字段类型转化
语法:
1.导入taglib指令:<%taglib uri="/struts-tags" prefix="s" %>
2.<s:property value="OGNL表达式"/> --> 在JSP中显示OGNL表达式的值
作用:
1.表达式语言
将表单或者Struts2标签与特定的Java数据库绑定起来,用来将数据移入,移除框架
2.类型转换
数据进入和流出框架,在页面数据的字符串类型和Java数据类型之间进行转换
值栈:ValueStack(可理解为存储数据的Map)
1.由Struts2框架创建的存储区域,具有栈的特点
2.Action的实例会被存放到值栈中
【注意:值栈中内容可以直接访问,访问非值栈对象需要添加#前缀】
OGNL访问ValueStack
1.按照从上到下的顺序
2.靠近栈顶的同名属性会被读取
访问Bean的属性
1.Bean的类型必须遵循JavaBean规范--必须具有无参构造
2.setter和getter方法符合JavaBean规范
访问集合对象
1.可以使用属性名[index]的方式访问 如:列表,数值
2.可以使用属性名[key]的方式访问 如:Map对象
3.使用size或者length获取集合长度
==========================================URL标签=================================
语法:
<s:url value="url" />
<s:param name="parname" value="parvalue" />
</s:url>
value属性:表示指定生成URL的地址
<s:param />:表示需要传递的参数信息
name属性:表示传递的参数名称
value属性:表示传递参数所具有的值
==========================================日期标签=================================
<s:date format="format" nice="true|false" name="name" >
……
</s:date>
format:指定格式进行日期格式化
nice: 指定是否输出指定日期和当前时间的时间差,默认false
name:当前需要格式化的日期
==========================================类型转换=================================
基于HTTP协议的Web应用中:
1.客户端请求的所有内容都以编码方式传输到服务器端
2.服务器端的编程语言有丰富的数据类型
内置类型转换器:自动对客户端传来的数据进行类型转换(除Servlet手动转换外)
内置类型转换器 说 明
String 将int、long、double、boolean、String类型的数组或者java.util.Date类型转换为字符串
boolean/Boolean 在字符串和布尔值之间进行转换
char/Character 在字符串和字符之间进行转换
date 在字符串和日期类型之间进行转换。具体输入输出格式与当前的Locale相关
数组和集合 在字符串数组和数组对象、集合对象间进行转换
创建自定义类型转换器
1.继承StrutsTypeConverter抽象类(org.apache.struts2.util. StrutsTypeConverter)
2.应用于全局范围的类型转换器
在src目录创建xwork-conversion.properties --> 转换类全名=类型转换器类全名
3.应用于特定类的类型转换器
在特定类的相同目录下创建一个名为ClassName-conversion.properties的属性文件 --> 特定类的属性名=类型转换器类全名
处理类型转换错误
1)向用户输出类型转换错误的前提条件
1.启动StrutsConversionErrorInterceptor拦截器
拦截器已经包含在defaultStack拦截器栈中
2.Action要继承ActionSupport类
实现ValidationAware接口
3.配置input结果映射
4.页面使用Struts 2表单标签或<s:fielderror>标签
a.Struts 2表单标签内嵌输出错误信息功能
b.普通HTML标签需使用<s:fielderror>标签输出转换错误
2)修改所有类型的转换错误信息
修改xwork.default.invalid.fieldvalue键的值
步骤:
1.在struts.xml中指定资源文件的基名 -- <constant name="struts.custom.i18n.resources" value="message"/>
2.在src目录下创建资源文件并修改键值 -- xwork.default.invalid.fieldvalue=字段"{0}"的值无效
3)定制特定字段的类型转换错误信息
在Action范围的资源文件中添加I18N消息键invalid.fieldvalue.xxx
在Action包下创建RegisterAction.properties,指定键值 -- invalid.fieldvalue.birthday=生日转换错误
原文:http://www.cnblogs.com/ivy-xu/p/5648392.html