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;
            }
        }
    
    }
    复制代码

  • 相关阅读:
    ffmpeg rtmp推流 视频转码
    java日志发展史 log4j slf4j log4j2 jul jcl 日志和各种桥接包的关系
    nginx stream 流转发,可以转发rtmp、mysql访问流,转发rtmp、jdbc请求
    java web http 转https 通过nginx代理访问
    linux 服务器磁盘挂载
    novnc 通过websockify代理 配置多点访问
    linux 文件服务 minio 安装部署配置
    AOP实现原理,手写aop
    java 泛型
    JAVA反射getGenericSuperclass()用法
  • 原文地址:https://www.cnblogs.com/claricre/p/6582318.html
Copyright © 2011-2022 走看看