JSTL中if...else...逻辑判断的简单用法

在写JSP时用得比较多的就是JSTL的if...else...逻辑判断了。简单记录一下它的语法:

<c:choose>
    <c:when test="${empty parameterA}">
    </c:when>
    <c:when test="${parameterB eq conditionStrA}">
    </c:when>
    <c:when test="${parameterC ne conditionStrB}">
    </c:when>
    <c:otherwise>
    </c:otherwise>
</c:choose>

语法还是比较浅显易懂的!第一个判断是对parameterA是否为空的判断;第二个判断是对parameterB是否等于conditionStrA的判断;第三个判断是对parameterC是否不等于conditionStrB的判断;最后一个otherwise相当于switch里面的default,如果前面的判断都不成立,那么就默认执行这里面的!so easy!

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-06 20:53:24

JSTL中if...else...逻辑判断的简单用法的相关文章

Android中资源文件中的字符串数组string-array简单用法

在Android中,用string-array是一种简单的提取XML资源文件数据的方法. 例子如下: 把相应的数据放到values文件夹的strings.xml文件里,或是其他自定义的xml中都可以,以下操作方法相同. <?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="sports"> <item>足球<

python中logging模块的一些简单用法

用Python写代码的时候,在想看的地方写个print xx 就能在控制台上显示打印信息,这样子就能知道它是什么了,但是当我需要看大量的地方或者在一个文件中查看的时候,这时候print就不大方便了,所以Python引入了logging模块来记录我想要的信息.print也可以输入日志,logging相对print来说更好控制输出在哪个地方,怎么输出及控制消息级别来过滤掉那些不需要的信息. 1.日志级别 import logging # 引入logging模块 # 将信息打印到控制台上 loggin

C/C++中substr函数的应用(简单讲解)

substr(字符串,截取开始位置,截取长度) //返回截取的字 substr('Hello World',0,1) //返回结果为 'H'  *从字符串第一个字符开始截取长度为1的字符串 substr('Hello World',1,1) //返回结果为 'H'  *0和1都是表示截取的开始位置为第一个字符 substr('Hello World',2,4) //返回结果为 'ello' substr('Hello World',-3,3)//返回结果为 'rld' *负数(-i)表示截取的开

ViewPager的简单用法+适配器+监听器的介绍

之前的actionbar+fragment文章中写过viewpager的简单用法,但因为是融合的文章,所以今天把viewpager提取出来写了.方便查询浏览~ 思路: 1.在布局文件中设置viewpager控件 2.在acitvity中找到它 3.自定义一个适配器,这个适配器需要一个list<View>来构造 4.定义一个list<View>来放入几个view,并用其来初始化适配器 5.给viewPager来设置适配器和监听器 实现: 1.布局文件,这里放一个指示文字.实际中可以用

java中Object.equals()简单用法

/* equals()方法默认的比较两个对象的引用! */ class Child { int num; public Child(int x){ num = x; } //人文的抛出运行时异常的好处是:可以自定义错误信息! /*public boolean equals(Object o) throws ClassCastException{ if(!(o instanceof Child)) throw new ClassCastException("中文提示:类型错误"); Ch

JSTL中&amp;#60;c:set&amp;#62;标签的用法

<c:set>标签有两种不同的属性设置:var和target. var“版本”用于设置作用域属性,target“版本”用于设置bean属性或Map值. 这两个版本都有两种形式:有标签体和没有标签体.有标签体的只是放入值的另一种途径. ★ var“版本” 1. <c:set var="userLevel" scope="session" value="Cowboy"/>     2.      3. <c:set va

Android中AsyncTask的简单用法【转】

在开发Android移动客户端的时候往往要使用多线程来进行操作,我们通常会将耗时的操作放在单独的线程执行,避免其占用主线程而给用户带来不好的用户体验.但是在子线程中无法去操作主线程(UI 线程),在子线程中操作UI线程会出现错误.因此android提供了一个类Handler来在子线程中来更新UI线程,用发消息的机制更新UI界面,呈现给用户.这样就解决了子线程更新UI的问题.但是费时的任务操作总会启动一些匿名的子线程,太多的子线程给系统带来巨大的负担,随之带来一些性能问题.因此android提供了

IOS 中block结构的简单用法

自从block出现之后,很多API都开始采用这样的结构,由此可见,block确实有许多优势存在,这里将一些简单用法总结如下: 一.如何声明一个block变量 我们通过^符号来声明block类型,形式如下: void (^myBlock)(); 其中第一个void是返回值,可以是任意类型,中间括号中^后面的是这个block变量的名字,我把它命名为myBlock,最后一个括号中是参数,如果多参数,可以写成如下样式: int (^myBlock)(int,int); 同样,你也可以给参数起名字: in

sapi语音朗读的简单用法(Unity中)

运行环境:win10, Unity5.6.2f1/Unity2018.2.6f1(两个版本都试了,可以) using SpeechLib; //... SpVoice voice = new SpVoice(); 书接上文Unity中使用Windows的sapi进行语音朗读上文例子中的代码只是最最简单的使用方法,实际用时是有问题的.这样直接 voice.Speak(str); 如上简单粗暴的使用,会卡住当前Unity程序的主线程,在朗读完毕之前会一直卡,包括关闭Unity程序,也还是会一直读完内