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

    OGNL表达式标签中的值有三种:

    1.直接是OGNL表达式。

    2.字符串需转义自OGNL表达式。

    1)OGNL表达式转换为字符串显示,需要用''(单引号)引起来。

    2)转为OGNL表达式的字符串,需要加%{字符串}来转换

    3.只能是字符串。

    标签:

    一、数据标签

    1.property -- 显示数据

    value -- 要显示的内容,放OGNL表达式 如果要显示字符串,需要用''引起来。

    escape -- true/false    默认是true, 改为false显示html效果标签

    default 默认值,放字符串,不是放OGNL

    <s:property value="'<h1>HAHA<h1>'" escape="false" default="[这是默认值]"/>

    2.set -- 设置一个新变量,赋值

    var -- 新变量名

    scope --范围 page/request/session/application

    value --变量值,OGNL表达式,字符串要加单引号

    <s:set var="ah" value="newsList" scope="request"></s:set>
    <s:property value="#request.ah"/>

    3.url -- 生成网址

    var -- 变量名

    value--要生成的URL地址,字符串可转义自OGNL,要手动写出完整的地址。

    action -- 要生成的URL地址,字符串可转义自OGNL,生成出绝对路径。一般用这个

    <s:url var="uu" action="News_getAll"></s:url>
    <s:property value="#uu"/>

    4.bean -- JavaBean的实现类

    name -- 要实例化的Java类

    var -- 变量名

    5.param -- 生成参数

    name -- 标签名

    value -- OGNL表达式,加单引号

    <s:bean name="com.itnba.maya.domel.News" var="bbb">
        <s:param name="biaoti" value="'这是自定义的标题'"></s:param>
    </s:bean>
    <s:property value="#bbb.biaoti"/>

    <s:url var="uu" action="News_getAll">
        <s:param name="ids" value="'k001'"></s:param>
    </s:url>
    <s:property value="#uu"/>

    6.date -- 格式化输出日期
    name -- 要格式化的日期值 --- OGNL表达式
    format --- 格式化显示的格式。

    <s:date name="date" format="yyyy年MM月dd日" var="mydate"/>
    <s:property value="mydate"/>

    二、控制标签

    1.if...else if ...else
    test -- 表格式 OGNL

    2.iterator
    var
    value --OGNL
    status :even,odd,first,last,index,count
    begin
    end
    step

    复制代码
    <s:iterator var="aa" value="newsList" status="st">
    <s:if test="#st.even">
    <div style="">
    </s:if>
    
    <s:else>
    <div>
    </s:else>
    <s:property value="#st.index+1"/>.
    <s:property value="#aa.biaoti"/>
    </div>
    </s:iterator>
    复制代码

    3.append/merge/subset

    var--新的对象名
    <param> 子元素

    复制代码
    <s:set value="{'aa','bb','cc'}" var="aa"></s:set>
    <s:set value="{'11','22','33'}" var="bb"></s:set>
    <s:append var="all">
        <s:param name="one" value="#aa"></s:param>
        <s:param name="two" value="#bb"></s:param>
    </s:append>
    复制代码

    复制代码
    <s:set value="{'aa','bb','cc'}" var="aa"></s:set>
    <s:set value="{'11','22','33'}" var="bb"></s:set>
    <s:merge var="all">
        <s:param name="one" value="#aa"></s:param>
        <s:param name="two" value="#bb"></s:param>
    </s:merge>
    <s:iterator value="#all"  var="t">
    <s:property value="#t"/><br>
    </s:iterator>
    复制代码


    4.generater
    seperator--分隔符
    val--被分隔的字符串
    var -- 分隔成的数组名

    <s:generator val="'a,b,c,d'" separator="," var="s"></s:generator>
    <s:iterator value="#s" var="t">
    <s:property value="#t"/><br>
    </s:iterator>


    5.sorted
    source --- 集合
    comparator -- 对比器对象

    复制代码
    <s:set value="{'aaaa','bb','ccc','dddd'}" var="arr"></s:set>
    <s:bean name="com.itnba.maya.domel.Duibiqi" var="duibiqi"></s:bean>
    <s:sort comparator="duibiqi" var="sss" source="#arr" >
        <s:iterator var="str">
            <s:property value="#str"/><br>
        </s:iterator>
    </s:sort>
    <s:property value="#arr.size()"/>
    复制代码

    还需要建一个类,实现Comparator接口。用来做对比器

    复制代码
    package com.itnba.maya.domel;
    
    import java.util.Comparator;
    
    public class Duibiqi implements Comparator<String>{ 
    
        @Override
        public int compare(String o1, String o2) {
            if(o1.length() > o2.length()){
                return -1;
            }
            else if(o1.length() == o2.length()){
                return 0;
            }
            else{
                return 1;
            }
        }
    
    }
    复制代码

  • 相关阅读:
    关于闭包的一些知识
    浏览器解析JavaScript原理(1)
    函数作用域及函数表达式
    jquery
    前端常用插件
    Git及GitHub
    angular框架
    express
    ES6基础
    Node.js相关总结
  • 原文地址:https://www.cnblogs.com/claricre/p/6582318.html
Copyright © 2011-2022 走看看