zoukankan      html  css  js  c++  java
  • struts2 OGNL表达式

    五、OGNL简介(非常重要)

          1、什么是OGNL

                                OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个单独的开源项目。 Struts2框架使用OGNL作为默认的表达式语言。

          2、OGNL的功能

                       前提:OGNLstruts2整合的一个开源项目,所以在struts2中,要想使用OGNL表达式,必须使用Struts2标签库

               2.1、支持普通方法的调用    

     1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
     2 <%@ taglib uri="http://www.itheima.com/functions/myfunction" prefix="myfn" %>
     3 <%@ taglib uri="/struts-tags" prefix="s" %>
     4 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     5 <html>
     6   <head>
     7     <title>OGNL-Expression</title>
     8   </head>
     9   <body>
    10       <%--el表达式: ${}
    11           jsp表达式:<%= %>
    12       --%>
    13   
    14       <%--EL表达式:只能调用静态方法 --%>
    15       abcdefg---->ABCDEFG
    16       <br/>
    17       ${myfn:touppoercase("abcdefg")}
    18       <hr/>
    19       <%--OGNL表达式:它可以访问普通方法 
    20           OGNL表达式必须写在struts2的标签中
    21           s:property它就类似于jsp的表达式,把值输出到浏览器上
    22           
    23           value属性中的内容不再是我们看到的字符串,它是一个OGNL表达式。必须知道
    24           如果想让他变成一个普通的字符串,在值外面套上单引号
    25       --%>
    26       <s:property value="OGNL-Expression"/> 这是一个OGNL表达式<br/>
    27       <s:property value="'OGNL-Expression'"/>这是一个普通的字符串<br/>
    28       <s:property value="'OGNL-Expression'.length()"/>使用普通字符串调用了获取长度的方法
    jsp

                                 (EL表达式只能调用静态方法)

               2.2、访问静态成员(静态属性,静态方法)

     1     <%--OGNL访问静态属性: 
     2           访问静态属性的方式:@全类名@静态属性名称
     3       --%>
     4       <s:property value="@java.lang.Integer@MAX_VALUE" /><br/>
     5       <%--OGNL访问静态方法:
     6           访问静态方法的方式:@全类名@静态方法名
     7           struts2的框架默认是禁用静态方法调用的。我们可以通过配置开启。
     8           struts.ognl.allowStaticMethodAccess=false把它改为true
     9       --%>
    10       <s:property value="@java.lang.Math@random()" />
    jap

                                OGNL改写文件下载:

                 

                 

               2.3、操作集合对象

                                a、创建List对象:    

    1     <%--OGNL操作map和List --%>
    2       <%-- 使用的是s:radio的标签,创建list集合
    3            {}就相当于创建了一个list集合
    4            list属性中的取值是一个OGNL表达式
    5        --%>
    6       <s:radio name="gender" list="{'男','女'}"></s:radio><br/>
    jsp                              

                                b、创建Map对象:

                       

    1     <%--使用s:radio创建一个map 
    2           #{}表示创建一个map
    3           1和0作为value给raido标签的value属性赋值
    4           男和女作为key,显示到页面的内容
    5       --%>
    6       <s:radio name="gender1" list="#{'1':'男','0':'女'}" />
    jsp

                     

                                                 

  • 相关阅读:
    BZOJ3781 小B的询问
    BZOJ3757 苹果树
    BZOJ1491 [NOI2007]社交网络
    BZOJ3754 Tree之最小方差树
    BZOJ1251 序列终结者
    BZOJ2259 [Oibh]新型计算机
    BZOJ1043 [HAOI2008]下落的圆盘
    D. 预定义变量
    A. 变量命名原则
    B. PHP变量的特点
  • 原文地址:https://www.cnblogs.com/soficircle/p/7062231.html
Copyright © 2011-2022 走看看