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>		
		
目录
相关文章
|
1天前
修正flowable流程支持节点表单字段条件判断
修正flowable流程支持节点表单字段条件判断
|
23天前
|
前端开发 Java 定位技术
生活小事件(SpringMVC主要的组件及作用和执行流程)
Spring MVC 的主要组件包括 DispatcherServlet(核心,请求调度)、HandlerMapping(URL 映射到处理器)、HandlerAdapter(统一执行处理器)、Handler(处理业务逻辑,通常为 @Controller 类)、ViewResolver(视图解析)和 View(渲染输出)。通过这些组件的协作,Spring MVC 实现了从接收请求到返回响应的流程,类似于警察处理交通违规的协调过程。
|
2月前
|
存储 小程序 程序员
嵌套的方式构建
嵌套的方式构建
9 0
|
2月前
|
编译器 芯片
嵌套向量中断控制器NVIC如何使用
嵌套向量中断控制器NVIC如何使用
19 1
|
9月前
Thymeleaf ${}中的表达式本质是OGNL-分支与迭代-包含其他模板文件
Thymeleaf ${}中的表达式本质是OGNL-分支与迭代-包含其他模板文件
28 0
|
编译器 Go
第四十六章 开发自定义标签 - 标签匹配 操作中的运行时表达式
第四十六章 开发自定义标签 - 标签匹配 操作中的运行时表达式
|
缓存 搜索推荐 Java
《SpringBoot系列十五》源码+案例分析条件装配时多个Condition执行的顺序是什么样的?可以配置优先级吗?
《SpringBoot系列十五》源码+案例分析条件装配时多个Condition执行的顺序是什么样的?可以配置优先级吗?
162 0
《SpringBoot系列十五》源码+案例分析条件装配时多个Condition执行的顺序是什么样的?可以配置优先级吗?
多条件判断场景中规则执行器的设计
多条件判断场景中规则执行器的设计
169 0
多条件判断场景中规则执行器的设计
|
Web App开发 Java 关系型数据库
02.Beetl模板的基础用法 【变量、循环、条件】---《Beetl视频课程》
springboot 集成 beetlsql;使用for循环,使用if控制语句,使用虚拟属性,定义变量等等
2369 0