zoukankan      html  css  js  c++  java
  • struts2 之 ognl

    1. ognl:object graph navigation language:对象导航图语言。
    2. ognl表达式在struts2中有2个作用:表达式语言,类型转换。

      实例如下:

    public class OgnlDemo {
        public static void main(String[] args) throws OgnlException {
            //ognl表达式的思想:把数据分为两类:常用的和不常用的。
            //常用的数据一般都是小数据,不常用的数据一般都是大数据。
            //将不常用的数据放在map中
            Map<String,Object> map = new HashMap<String,Object>();
            map.put("school", "sxt");
            map.put("address", "山东菏泽");
            //常用的数据
            User user = new User();
            user.setAge(23);
            user.setName("张三疯");
            Role role = new Role();
            role.setName("管理员");
            user.setRole(role);
            //第一个参数 是ognl表达式  第二参数是ognl上下文(不常用的数据) 第三个参数是ognl的根(常用的数据)
            //表达式的写法:常用的数据直接获取  不常用的数据加#获取
            Object result = Ognl.getValue("#address", map, user);
            System.out.println(result);
            
        }
    }

    3 . 在struts2中使用ognl表达式来完成数据的设置及获取。并且使用ognl来完成类型转换工作。在struts2中ActionContext对象是ognl的上下文对象,ValueStack是ognl的根对象。ValueStack放的是Action对象的属性。

    4.在struts2使用ognl表达式来获取值,需要使用struts2的标签库:

    实例如下:

    <%@taglib prefix="s" uri="/struts-tags"%>
    欢迎<s:property value="username"/>进行系统<br>
    欢迎<s:property value="#request.username"/>进行系统<br>
    
    <s:iterator value="list" var="bean">
          <tr>
              <td><s:property value="#bean.id"/></td>
              <td><s:property value="#bean.name"/></td>
              <td><s:property value="#bean.age"/></td>
          </tr>
          </s:iterator>

    5. 在struts2使用ognl访问数据的方式总结:

    6.使用Struts 标签注意事项:

      (a)使用struts 的标签必须要经过核心过滤器。

      (b)Struts2提供的标签库比较全面,但是不灵活,所以使用比较少。

  • 相关阅读:
    Google的Java常用类库 Guava资料
    Java 理论与实践: 哈希
    7 款开源 Java 反编译工具
    Eclipse传递main函数参数
    Java程序员常用工具类库
    Eclipse 安装插件
    学习Javascript的8张思维导图
    java开发者最常去的20个英文网站
    关于工作效率的心得分享
    ProtoBuf开发者指南
  • 原文地址:https://www.cnblogs.com/forever2h/p/6710141.html
Copyright © 2011-2022 走看看