bboss逻辑标签实现if-else以及if-else if-else条件判断功能介绍

简介: 采用bboss逻辑标签可以非常容易地实现if-else以及if-else if-else条件判断功能,相关的标签为case,other,yes,no以及其它bboss逻辑标签。本文以两个简单的示例来说明上述功能。
采用bboss逻辑标签可以非常容易地实现if-else以及if-else if-else条件判断功能,相关的标签为case,other,yes,no以及其它 bboss逻辑标签。本文以两个简单的示例来说明上述功能。

一、if-else功能

相等的if-else条件判断:
<pg:equal actual="false" value="true" evalbody="true" >
		
			<pg:yes>
				yes,很好!
			</pg:yes>
			<pg:no>
				no,很坏!
			</pg:no>
		</pg:equal>

上述代码与下面代码段功能等价,区别是采用yes/no相结合的模式性能更好:

<pg:equal actual="false" value="true"  >
				yes,很好!
		</pg:equal>
<pg:notequal actual="false" value="true"  >
				no,很坏!
		</pg:notequal>

对比简单的相等匹配代码:
<pg:equal actual="false" value="true"  >
				yes,很好!
		</pg:equal>

这段简单的代码说明equal标签比较结果为true时直接执行equal标签体中的内容,否则不执行;而if-else判断功能时,equal标签指定了evalbody="true"属性,指示equal标签强制执行标签体语句,然后通过yes和no标签组合实现if-else功能,当比较结果为true时,执行yes标签体中内容,否则执行no标签中的内容。
上面的功能java中实现的写法:
if(false == true)
{
   System.out.println("yes,很好!");
}
else
{
    System.out.println("yes,很坏!");
}


不相等的if-else条件判断:

<pg:notequal actual="false" value="true" evalbody="true" >
		
			<pg:yes>
				yes,很好!
			</pg:yes>
			<pg:no>
				no,很坏!
			</pg:no>
		</pg:notequal>

bboss所有的逻辑标签都可以使用evalbody属性,从而实现相应的if-else功能。

colName属性的使用方法如下:
<pg:notequal colName="name" value="duoduo" evalbody="true" >
		
			<pg:yes>
				yes,很好!
			</pg:yes>
			<pg:no>
				no,很坏!
			</pg:no>
		</pg:notequal>

上面的功能java中实现的写法:
if(name !=null && !name.equals("duoduo"))
{
   System.out.println("yes,很好!");
}
else
{
    System.out.println("yes,很坏!");
}


二、if-elseif-else功能
3个简单的相等判断实例-actual直接指定需要判断的值:
<pg:case actual="1">
		
			<pg:equal value="1">
				yes,1!
			</pg:equal>
			<pg:equal value="2">
				yes,2!
			</pg:equal>
			<pg:other>
				yes,other!!
			</pg:other>
		</pg:case>
		
		<pg:case actual="2">
		
			<pg:equal value="1">
				yes,1!
			</pg:equal>
			<pg:equal value="2">
				yes,2!
			</pg:equal>
			<pg:other>
				yes,other!!
			</pg:other>
		</pg:case>
		
		<pg:case actual="3">
		
			<pg:equal value="1">
				yes,1!
			</pg:equal>
			<pg:equal value="2">
				yes,2!
			</pg:equal>
			<pg:other>
				yes,other!!
			</pg:other>
		</pg:case>

在case标签中可以内置其他所有逻辑标签,other标签放置在case的内嵌标签的最后面,当前面的标签都没有执行时,最终会执行other标签体重的内容。

看一个简单的cell colName的使用方法:
<pg:case colName="name">
		
			<pg:equal value="1">
				<pg:cell colName="firstName"/>
			</pg:equal>
			<pg:equal value="2">
				<pg:cell colName="secondName"/>
			</pg:equal>
			<pg:other>
				<pg:cell colName="otherName"/>
			</pg:other>
		</pg:case>		
		

上面的功能java中实现的写法:
if(name !=null && name.equals("1"))
{
    
}
else if(name !=null && name.equals("2"))
{
     
}
else 
{
    
}


在case标签中other标签是可选的,就好比if-elseif-else中最后的else是可选的一样,例如:
<pg:case colName="name">
		
			<pg:equal value="1">
				<pg:cell colName="firstName"/>
			</pg:equal>
			<pg:equal value="2">
				<pg:cell colName="secondName"/>
			</pg:equal>
			
		</pg:case>		
		
目录
相关文章
|
29天前
|
存储 小程序 程序员
嵌套的方式构建
嵌套的方式构建
9 0
|
1月前
|
编译器 芯片
嵌套向量中断控制器NVIC如何使用
嵌套向量中断控制器NVIC如何使用
18 1
|
4月前
|
Oracle Java 关系型数据库
Generator【SpringBoot集成】代码生成+knife4j接口文档(2种模板设置、逻辑删除、字段填充 含代码粘贴可用)保姆级教程(注意事项+建表SQL+代码生成类封装+测试类)
Generator【SpringBoot集成】代码生成+knife4j接口文档(2种模板设置、逻辑删除、字段填充 含代码粘贴可用)保姆级教程(注意事项+建表SQL+代码生成类封装+测试类)
28 0
|
8月前
|
SQL Java 数据库连接
掌握 MyBatis <choose>标签:优化动态查询条件的利器
当谈到在Java应用程序中进行数据库访问时,MyBatis 是一个备受欢迎的持久层框架。它的强大之处在于提供了灵活性和可定制性,使得数据库操作变得更加简便。在这篇文章中,我们将深入介绍 MyBatis 中的`&lt;choose&gt;` 标签,它是一个有趣且功能强大的元素,用于在 SQL 映射文件中进行条件选择。
123 0
|
8月前
Thymeleaf ${}中的表达式本质是OGNL-分支与迭代-包含其他模板文件
Thymeleaf ${}中的表达式本质是OGNL-分支与迭代-包含其他模板文件
28 0
|
编译器 Go
第四十六章 开发自定义标签 - 标签匹配 操作中的运行时表达式
第四十六章 开发自定义标签 - 标签匹配 操作中的运行时表达式
|
缓存 搜索推荐 Java
《SpringBoot系列十五》源码+案例分析条件装配时多个Condition执行的顺序是什么样的?可以配置优先级吗?
《SpringBoot系列十五》源码+案例分析条件装配时多个Condition执行的顺序是什么样的?可以配置优先级吗?
160 0
《SpringBoot系列十五》源码+案例分析条件装配时多个Condition执行的顺序是什么样的?可以配置优先级吗?
|
SQL JSON Java
Mybaties(十五) 分页插件使用, 参数校验以及全局异常处理
这里是Mybaties中高级应用了, 基于Mybaties+Springboot实现分页, 参数校验以及全局异常(干货满满!!!)
多条件判断场景中规则执行器的设计
多条件判断场景中规则执行器的设计
166 0
多条件判断场景中规则执行器的设计
|
Web App开发 Java 关系型数据库
02.Beetl模板的基础用法 【变量、循环、条件】---《Beetl视频课程》
springboot 集成 beetlsql;使用for循环,使用if控制语句,使用虚拟属性,定义变量等等
2356 0