- 浏览: 99215 次
文章分类
最新评论
转载自:http://blog.csdn.net/yanweijie0317/article/details/6331139
一、 彩种(lottery_type) 对应的json 文件
a) 情况:如果彩种(lottery_type) 对应的json 文件存在/ 不存在,
i. 判断方式及结果:
#if($lottery_type_10)
有开奖结果
#end
#if(!$lottery_type_10)
无开奖结果
#end
二、 彩期
a) 情况: 彩期(phase) 对应的属性存在/ 不存在
i. 判断方式及结果:
#if($lottery_type_50.phase)
彩期(phase) 对应的属性存在
#end
#if(!$lottery_type_50.phase)
彩期(phase) 对应的属性不存在
#end
b) 情况:彩期(phase) 对应的属性存在,但value 是null
i. 判断方式及结果:
#if($lottery_type_50.phase)
value 不是null
#end
#if(!$lottery_type_50.phase)
value 是null
#end
c) 情况:彩期(phase) 对应的属性存在,但value 是”null”
i. 判断方式及结果
1. 如果是对象通过‘. ’的方式获取属性
#if($lottery_type_50.phase)
value 不是“null ”
#end
#if(!$lottery_type_50.phase)
value 是“null ”
2. 如果直接获取属性
#if(${phase} == "null")
value 是“null ”
#end
#if(${phase} != "null")
value 不是“null ”
#end
d) 情况:彩期(phase) 对应的属性存在,但value 是“”
i. 判断方式及结果:
#if($lottery_type_50.phase == “”)
value 为“”
#end
#if($lottery_type_50.phase != “”)
value 不是“”
#end
e) 实例:
#if($lottery_type_50.phase)
111
#if($lottery_type_50.phase != "")
333
#end
#if($lottery_type_50.phase == "")
444
#end
#if($lottery_type_50.phase != "null")
555
#end
#if($lottery_type_50.phase == "null")
666
#end
#end
#if(!$lottery_type_50.phase)
222
#end
l 如果彩期(phase) 属性不存在,结果:222
l 如果彩期(phase) 属性存在,但值为null 或者”null” ,结果:222
l 如果彩期(phase) 属性存在,但值为”” ,结果:111 444 555
l 如果彩期(phase) 属性存在,值为”2011036” ,结果:111 333 555
三、 开奖日期
a) 情况:如果开奖日期(draw_time) 属性不存在,或者开奖日期(draw_time) 属性存在,但是值为null 或者 “null ”,
i. 判断方式及结果:
#if($lottery_type_50.draw_time)
属性不存在或者值为null 或者“null ”
#end
#if(!$lottery_type_50.draw_time)
属性存在且值bu 为null 也不为“null ”
#end
b) 情况:如果开奖日期(draw_time) 属性存在,值为“”
i. 判断方式及结果:
#if($lottery_type_50.draw_time == “”)
属性值为””
#end
#if($lottery_type_50.draw_time != “”)
属性值不为””
#end
c) 实例:
#if($lottery_type_50.draw_time)
111
#end
#if(!$lottery_type_50.draw_time)
222
#end
#if($lottery_type_50.draw_time == "")
333
#end
#if($lottery_type_50.draw_time != "")
444
#end
#if($lottery_type_50.draw_time == "null")
555
#end
#if($lottery_type_50.draw_time != "null")
666
#end
l 如果开奖日期属性(draw_time) 不存在,结果:222 444 666
l 如果开奖日期属性(draw_time) 存在,但值为null 或者 “null” ,结果:222 444 666
l 如果开奖日期属性(draw_time) 存在,但值为”” ,结果:111 333 666
l 如果开奖日期) 属性(draw_time 存在,并且值为"2011-03-31 22:30:00" ,结果:111 444 666
四、 奖池滚存
a) 情况:奖池(pool_amount) 不存在,或者奖池(pool_amount) 存在,值为null 或者“null ”
i. 判断方式及结果
#if($lottery_type_50.pool_amount)
奖池(pool_amount) 存在,并且奖池(pool_amount) 值不为null 也不为“null ”
#end
#if(!$lottery_type_50.pool_amount)
奖池(pool_amount) 不存在,或者奖池(pool_amount) 存在,值为null 或者“null ”
#end
b) 情况:奖池(pool_amount) 值为“”
i. 判断方式及结果
#if($lottery_type_50.pool_amount == "")
奖池(pool_amount) 值为””
#end
#if($lottery_type_50.pool_amount != "")
奖池(pool_amount) 值不为””
#end
五、 试机号
a) 情况:fc3d_sjh 不存在,或者fc3d_sjh 存在,值为null 或者”null”
i. 判断方式及说明:
#if($lottery_type_52.fc3d_sjh)
fc3d_sjh 存在并且值不为null 也不为”null”
#end
#if(!$lottery_type_52.fc3d_sjh)
fc3d_sjh 不存在,或者fc3d_sjh 存在,值为null 或者”null”
#end
b) 情况:fc3d_sjh 存在,值为””
i. 判断方式及说明:
#if($lottery_type_52.fc3d_sjh == “”)
fc3d_sjh 值为””
#end
#if(!$lottery_type_52.fc3d_sjh != “”)
fc3d_sjh 值不为””
#end
c) 情况:"fc3d_sjh":{} 需要进入{} 内进行判断
d) 实例:
#if($lottery_type_52.fc3d_sjh)## 一级属性fc3d_sjh 存在,并且值不为null ,也不为“null “
#if($lottery_type_52.fc3d_sjh != "")## 一级属性fc3d_sjh 值不为““
#if($lottery_type_52.fc3d_sjh.fc3d_sjh)## 二级属性fc3d_sjh 存在,且值不为null 或者“null “
#if($lottery_type_52.fc3d_sjh.fc3d_sjh != "")## 二级属性fc3d_sjh 的值不为““
#if($lottery_type_52.fc3d_sjh.fc3d_sjh.machine || $lottery_type_52.fc3d_sjh.fc3d_sjh.ball
|| $lottery_type_52.fc3d_sjh.fc3d_sjh.sjh)## 只要machine 或者ball 或者sjh 存在,且值不为null 或者“null “
#if($lottery_type_52.fc3d_sjh.fc3d_sjh.machine) ## machine 存在,且值不为null 或者“null “
#if($lottery_type_52.fc3d_sjh.fc3d_sjh.machine != "")##machine 存在,值不为““
$lottery_type_52.fc3d_sjh.fc3d_sjh.machine
#else##machine 存在,值为““
0
#end
#else## machine 不存在或者存在但是值为null或者“null “
0
#end
机
#if($lottery_type_52.fc3d_sjh.fc3d_sjh.ball)
#if($lottery_type_52.fc3d_sjh.fc3d_sjh.ball != "")
$lottery_type_52.fc3d_sjh.fc3d_sjh.ball
#else
0
#end
#else
0
#end
球
#if($lottery_type_52.fc3d_sjh.fc3d_sjh.sjh)
#foreach ($sjh in $lottery_type_52.fc3d_sjh.fc3d_sjh.sjh)
#if($sjh != "null" && $sjh != "")
$sjh
#end
#end
#end
#else## machine 或者ball 或者sjh 不存在,或者存在但是值为null 或者“null
暂无结果
#end
#else## 二级属性值为““
暂无结果
#end
#else## 二级属性fc3d_sjh 不存在,或者值为null 或者“null “
暂无结果
#end
#else## 一级属性值为““
暂无结果
#end
#else## 一级属性fc3d_sjh 不存在或者值为null 或者“null “
暂无结果
#end
六、 开奖结果
a) 情况:开奖结果属性(result) 存在/ 不存在
i. 判断方式及结果:
#if($lottery_type_50.result)
开奖结果属性(result) 存在
#end
#if(!$lottery_type_50.result)
开奖结果属性(result) 不存在
#end
b) 情况:开奖结果属性(result) 存在,但值为null
i. 判断方式及结果:
#if($lottery_type_50.result)
开奖结果属性(result) 存在,值不为null
#end
#if(!$lottery_type_50.result)
开奖结果属性(result) 存在,但值为null
#end
c) 情况:开奖结果属性(result) 存在,但值为”null”
i. 判断方式及结果:
1. 如果是对象通过’.’ 获取对象
#if($lottery_type_50.result)
开奖结果属性(result) 存在,值不为null
#end
#if(!$lottery_type_50.result)
开奖结果属性(result) 存在,但值为null
#end
2. 如果直接获取对象
#if(result == “null”)
开奖结果属性(result) 存在,值为”null”
#end
#if(result != “null”)
开奖结果属性(result) 存在,但值为”null”
#end
d) 情况:开奖结果属性(result) 存在,但值为“”
i. 判断方式及结果:
#if($lottery_type_50.result == "")
开奖结果属性(result) 值为“”
#end
#if($lottery_type_50.result != "")
开奖结果属性(result) 值不为“”
#end
e) 情况:开奖结果属性(result) 存在,但值为空数组[]
i. 判断方式及结果:
#if($lottery_type_50.result.size() == 0)
开奖结果 (result) 值不为 []
#end
#if($lottery_type_50.result.size() != 0)
开奖结果 (result) 值为 []
#end
f) 情况:"result":[,] ;"result":[“”,””] ;需要对result 数组的每个元素进行判断
i. "result":[,] ;"result":[null,null] ;"result":[“null”,”null”] ;
1. 判断方式及结果
#if($result == "null")
元素为”null”
#end
#if($result != "null")
元素不为”null”
#end
结果:元素为”null”
ii. "result":[“”,””]
1. 判断方式及结果
#if($result == "")
元素为””
#end
#if($result != "")
元素不为””
#end
结果:元素为””
g) 情况:"result":[,] ;"result":[{"key":"red"},{"key":"blue"}] ;"result":[{"key":"red","data":null},{"key":"blue","data":null}] ;"result":[{"key":"red","data":“null ”},{"key":"blue","data": “null ”}] ;
"result":[{"key":"red","data": “”},{"key":"blue","data": “”}] ;
"result":[{"key":"red","data":[]},{"key":"blue","data":[]}] ;需要对data 进行判断
i. "result":[{"key":"red"},{"key":"blue"}] ;"result":[{"key":"red","data":null},{"key":"blue","data":null}] ;"result":[{"key":"red","data": “null ”},{"key":"blue","data": “null ”}] ;
1. 判断方式及结果:
#if($result.data)
data 属性存在
#end
#if(!$result.data)
data 属性不存在,或者data 属性存在,值为null 或者 “null ”
#end
ii. "result":[{"key":"red","data": “”},{"key":"blue","data": “”}] ;
1. 判断方式及结果:
#if($result.data == "")
data 属性值为“”
#end
#if($result.data != "")
data 属性值不为“”
#end
iii. "result":[{"key":"red","data":[]},{"key":"blue","data":[]}]
1. 判断方式及结果:
#if($result.data.size() > 0)
data 数组有数据
#end
#if($result.data.size() == 0)
data 数组没有数据
#end
h) 情况:"result":[{"key":"red","data":[,,,,,]},{"key":"blue","data":[]}] ;"result":[{"key":"red","data":["","","","","",""]},{"key":"blue","data":[""]}] ;
iv. "result":[{"key":"red","data":[,,,,,]},{"key":"blue","data":[]}]
1. 判断方式及结果:
#if($data != "null")
333
#end
#if($data == "null")
444
#end
结果:444
v. "result":[{"key":"red","data":["","","","","",""]},{"key":"blue","data":[""]}]
1. 判断方式及结果:
#if($data == "")
为“”
#end
#if($data != "")
不为“”
#end
i) 实例:
#if($lottery_type_50.result)## 有定义result 属性并且result 属性值不为null ,也不为“null ”
#if($lottery_type_50.result != “”)
#if($lottery_type_50.result.size() > 0)## 针对result:[] ,则size = 0 ,而result:[,,],size>0
#set($exist = "0")## 声明变量$exist ,用于记录是否有开奖结果,初始值为“0 ”
#foreach($result in $lottery_type_50.result)
#if($result != “null” && $result != “”)
#if($result.key)
#if($result.key == 'red')
#if($result.data)
#if($result.data != “”)
#if($result.data.size() > 0)
#foreach($data in $result.data)
#if($data != "null" && $data != "")## 如果有data 属性,而且data 属性的值不为null ,不为“null ”,而且非data:[ “”, ””, ””] 此种情况,非data:[,,,] 此种情况
#set($exist = "1")## 变量$exist 赋值“1 ”
#end
#end
#end
#end
#end
#end
#if($result.key == 'blue')
#foreach($data in $result.data)
#if($data != "null" && $data != "")
#set($exist = "1")
#end
#end
#end
#end
#end
#end
##$exist :0 代表无开奖结果,1 代表有开奖结果
#if($exist == "0")
暂无开奖结果
#else
#foreach($result in $lottery_type_50.result)
#if($result != “null” && $result != “”)
#if($result.key)
#if($result.key == 'red')
#if($result.data)
#if($result.data != "")
#if($result.data.size() > 0)
#foreach($data in $result.data)
#if($data != "null" && $data != "")
<div class="redball">$data</div>
#end
#end
#end
#end
#end
#end
#if($result.key == 'blue')
#if($result.data)
#if($result.data != "")
#if($result.data.size() > 0)
#foreach($data in $result.data)
#if($data != "null" && $data != "")
<div class="redball">$data</div>
#end
#end
#end
#end
#end
#end
#end
#end
#end
#end
#else##result:[]
暂无开奖结果
#end
#else
暂无开奖结果
#end
#else## 未定义result 属性, 或者有定义result 属性,值为null 或者“null ”
暂无开奖结果
#end
七、 奖项
a) 实例:
#if($result_detail)// 判断result_detail 属性是否存在,如果存在,值是否为null
#if($result_detail != "null" && $result_detail != "")// 因为是直接获取属性,需要多加一层”null” 判断
#if($result_detail.size() > 0)
#set($exists = "0")
#foreach ($item in $result_detail)
#if($item != "null" && $item != "")// 对数组中每一个奖项的判断
#if($velocityCount)
#if($velocityCount != "null" && $velocityCount != "")
#set($exists = "1")
#end
#end
#end
#end
#if($exists == "1")
#foreach ($item in $result_detail)
#if($item != "null" && $item != "")
#if($velocityCount)
#if($velocityCount != "null" && $velocityCount != "")
#if($velocityCount < 3)
#if($velocityCount == 1)
#set($str = " 一")
#elseif ($velocityCount == 2)
#set($str = " 二")
#end
<li>${str } 等奖:<span class="money">
#if(${item.prize})
#if(${item.prize} != "")
${item.prize}
#else
0
#end
#else
0
#end
</span> 元/ 注</li>
#end
#end
#end
#end
#end
#else
<li> 暂无奖项</li>
#end
#else
<li> 暂无奖项</li>
#end
#else
<li> 暂无奖项</li>
#end
#else
<li> 暂无奖项</li>
#end
八、
九、 总结:
a) 属性不存在或者属性存在但是值为null ,!$prize_amount 结果为true ,prize_amount 结果为false
b) 属性存在值为“null ”,分两种情况:
i. 一种通过对象. 属性,!$prize_amount 结果为true ,prize_amount 结果为false
ii. 直接属性,$data == “null” 结果为true ,$data != “null” 结果为false
c) 属性存在但是值为““,$prize_amount == “” 结果为true ,$prize_amount != “” 结果为false
d) 如果是数组,并且数组中有元素,如[,,,,,] ,$data == “null” 结果为true ,$data != “null”结果为false
相关推荐
这里假设有一个名为`template.vm`的模板文件,内容可能是`Hello, #name!`,运行后会输出`Hello, World!`。 **4. Velocity与其他模板引擎的比较** Velocity与JSP、FreeMarker等其他模板引擎相比,有其独特优势。...
- 不要在方法注释前添加 `/` 符号,否则可能导致参数自动补全为 null。 - 在模板中使用 `${param}` 和 `${return}` 作为参数和返回值的占位符。 ##### 3.4 使用注释模板 - 打开 Java 文件,在需要添加注释的地方...
- 每个watcher代表一个具体的视图或者计算属性,它监听数据的变化并负责更新对应的视图。 - 内部有一个`update`方法,当接收到数据变化的通知时,执行此方法来更新视图。 ```javascript class Watcher { ...
1. 创建模板文件,将模板内容写入文件(例如`.vm`文件)。 2. 在Java应用中通过Velocity引擎加载模板文件。 3. 向模板提供数据模型,通常是Java对象。 4. 渲染模板,将数据模型与模板合并,生成最终的输出结果。 5. ...
模板文件通常以`.vm`为扩展名,其中包含可被替换或计算的占位符。 ### 2. Velocity 工作原理 - **模板解析**:Velocity 首先会解析模板文件,将模板中的指令(如`#if`, `#foreach`, `#set`等)识别出来,形成抽象...
FileOutConfig foc = new FileOutConfig("/templates/mapper.xml.vm") { @Override public String outputFile(TableInfo tableInfo) { return "/Users/your_user/Documents/your_project/src/main/resources/...
Velocity是一个Java模板引擎,它允许开发者将逻辑和表示分离,使得网页设计更加清晰,而Spring框架则为Java应用程序提供了一个全面的依赖注入和服务层。 在Spring框架中集成Velocity,首先你需要在项目的类路径下...
假设我们有两个模板文件:`header.vm`和`content.vm`。 `header.vm`: ```velocity <!DOCTYPE html> <title>Page Title ``` `content.vm`: ```velocity #include(header.vm) <h1>Welcome to My Webpage #...
`用于表示当变量不存在或值为null时显示为空,如`$!msg`。 **三、变量操作** 1. **变量定义**:Velocity是弱类型语言,定义变量使用`#set`,如`#set($directoryRoot = "www")`。变量名可以包含字母、数字、连字符和...
同时,需要在项目的src根目录下创建一个名为`FirstExample.vm`的模板文件,并编写如下代码: ```vm #set($unitName="中教科技") #set($dept='研发部') 我叫$name,好高兴见到你。我的梦想是$dream 我就职于${unit...
在Java编程中,获取当前路径是一项常见的任务,特别是在处理文件操作或者资源定位时。下面将详细介绍几种在Java中获取当前路径的方法。 1. 使用`System.getProperty()`函数: `System.getProperty("user.dir")`是...
Velocity 的能力远不止 web 站点开发这个领域,例如, 它可以从模板(template)产生 SQL 和 PostScript 、XML ,它也可以被当作一个独立工具来产生源代码和报告,或者作为其他系统的集成组件使用。 Velocity 也...
创建一个名为 `login.vm` 的 Velocity 模板文件,展示登录表单: ``` <title>Login Page <h1>Login #if ($error) <p>Error: ${error} #end <label for="username">Username: ...
Velocity模版文件(通常以`.vm`为扩展名)会被解释并合并到HTML或其他输出格式中,生成最终的动态网页内容。 总的来说,Velocity模版技术是Web开发中一种强大的工具,它通过简洁的语法和良好的可扩展性,帮助开发者...
28. ThreadLocal可能导致内存泄漏,因为线程结束后,ThreadLocalMap不会自动清除,需手动设置为null。 四、反射 1. 反射允许程序在运行时动态获取类的信息,并创建或操作类的对象。 2. 序列化是将对象转换为字节流...
- 如果赋值表达式中的右值为`null`,那么左值不会被赋值,即保留原有的值。 - 未定义的变量会被默认视为字符串。 - 在Velocity中,`$foo.Name` 被解释为`foo`对象的`getName()`方法而非其实例变量`Name`。 #### 2. ...
Vijava,全称为VMware Java API,是一个开源的Java库,主要用于与VMware的vSphere和vCenter服务器进行交互。这个库提供了丰富的API,使得开发者可以方便地通过编程方式来管理VMware环境中的虚拟资源,包括数据中心、...
- 使用TypeScript时,为了获得类型检查和智能感知,可以先将`vm`设为`null`,然后在需要的地方赋值为`this`,如`vm = vm || this`。 - 计算属性之间可以相互引用,但需要遵循一定的规则: - 计算属性必须最终依赖...
总结起来,Velocity 提供了一种灵活的方式来处理各种数据类型,并支持常见的控制结构和函数。它非常适合用来生成 HTML 页面、XML 文件以及其他格式的文档。通过合理利用 Velocity 的特性,开发者可以更加高效地完成...