概述
1.OGNL:对象图形导航语言
(1)作用:通过对象直接访问其属性值
(2)在框架中的应用: <1>将请求的数据保存到action的属性中
<2>将属性值从action中提取出来
<3>实现请求数据到指定类型数据的类型转换
(3)类型转换器的分类:<1>内置类型转换器 <2>自定义类型转换器
<1>内置类型转换器:
注:当接受多条同名数据时使用集合或数组接受,但要求页面中控件的名称要相同
示例:action中接收数据
private List list;
private String[] names;
<2>自定义类型转换器:
步骤:1.定义转换器类,该类继承StrutsTypeConverter,重写方法
//将页面发送过来的字符串转换成对应的类型(在给action中属性赋值前调用)
public Object convertFromString(Map context, String[] values, Class toClass) {}
//将对应的类型转换成字符串
@Override
public String convertToString(Map context, Object o) {}
2.创建属性文件,告诉程序哪些类型需要执行自定义转换器
文件名:src下创建:xwork-conversion.properties文件
内容: 转换类=自定义转换器的完整路径
示例:
java.util.Date=util.myConverter;//表示请求过程中date类型的值需要执行myConverter中的转换
<3>如果转换依旧失败,在页面显示错误信息
前提条件:(1)请求中使用defaultStack拦截器栈
(2)action要继承ActionSupport
(3)配置input结果响应
(4)在页面中使用<s:fieldError/>显示错误信息
如何自定义错误信息:
//1.修改struts.xml文件
<constant name="struts.custom.i18n.resources" value="属性文件的名字"/>
//2.在属性文件中修改错误提示信息
xwork.default.invalid.fieldvalue=错误信息
———————————————ognl(数据的流入和流出):
2.使用ognl保存页面中的数据到action中
接收的类型:基本数据类型(8种)和引用数据类型(类,数组,接口)
action中接收客户端数据的格式:对象,集合,数组
对于数组和集合接收数据:要求页面控件的名字要相同,map集合命名时:
3.ognl中保存数据的方式:
<1>值栈(ValueStack):默认保存方式
体现:action中定义的属性以及属性值都保存在值栈
值栈访问数据:
<2>非值栈:比如保存在request,session,application中的数据
非值栈数据的访问:
示例:
session.put(“u”,user);
补充:
request: #request.key
session: #session.key
application: #application.key
最后
以上就是闪闪战斗机为你收集整理的Struts2中OGNL的使用(Java高级框架)的全部内容,希望文章能够帮你解决Struts2中OGNL的使用(Java高级框架)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复