Struts2中OGNL的使用(Java高级框架)

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值