EL运算表达式和JSTL标签
来源:互联网 发布:ubuntu 16.04中文版 编辑:程序博客网 时间:2024/06/09 11:45
<span style="font-size:14px;"><span style="font-size:14px;">项目中,需要计算金额并保留2位小数,在前台展示的时候是2个结果的乘积,以前的时候一直在后台进行转换,比方说一直用的BigDecimal对象,先要转为double在转为String,很麻烦的然后,同事说其实可以直接在JSP页面用JSTL标签做运算,然后百度了下,果然。。。。。。java要学的东西真的很多,我太二啦 乘法运算保留2位小数,后面的patern minFractionDigts 2个属性如果不指定的话,就会默认为整数 <fmt:formatNumber value=" ${query.countFee * query.corpr_ratio}" pattern="#.##" minFractionDigits="2"/>JSTL 中文教程可参考:<span style="color:#FF0000;">http://www.yiibai.com/jstl/jstl_format_parsedate_tag.html</span></span><pre name="code" class="java"><span style="font-size:14px;"> EL 关系运算符有以下六个运算符: 关系运算符 说 明 范 例 结 果 = = 或 eq 等于 ${ 5 = = 5 } 或 ${ 5 eq 5 } true != 或 ne 不等于 ${ 5 != 5 } 或 ${ 5 ne 5 } false < 或 lt 小于 ${ 3 < 5 }或 ${ 3 lt 5 } true > 或 gt 大于 ${ 3 > 5 }或 ${ 3 gt 5 } false <= 或 le 小于等于 ${ 3 <= 5 }或 ${ 3 le 5 } true >= 或 ge 大于等于 ${ 3 >= 5 }或 ${ 3 ge 5 } false 注意 在使用EL 关系运算符时, 不能够写成: ${param.password1} = = ${param.password2} 或者 ${ ${param.password1 } = = ${ param.password2 } } 而应写成 (1) A {<, >, <=, >=, lt, gt, le, ge} B ● 假若A= = B,运算符为<=, le, >=, ge 时,回传true,否则回传false ● 假若A 为null 或B 为null 时,回传false ● 假若A或B为BigDecimal时,将另一个转为BigDecimal,然后回传A.compareTo(B)的值 ● 假若A 或B 为Float、Double 时,皆转为Double 类型,然后依其运算符运算 ● 假若A或B为BigInteger时,将另一个转为BigInteger,然后回传A.compareTo(B)的值 ● 假若A 或B为Byte、Short、Character、Integer或Long时,皆转为Long 类型,然后依其 运算符运算 ● 假若A 或B 为String 时,将另一个也转为String,然后做词汇上的比较 ● 假若A 为Comparable 时,则: ·假若A.compareTo(B)产生异常时,则错误! ● 否则,采用 A.compareTo(B) 的比较结果 ● 假若B 为Comparable 时,则: · 假若B.compareTo(A)产生异常时,则错误! ● 否则,采用 A.compareTo(B) 的比较结果 ● 否则,错误! (2) A {= =, !=, eq, ne} B ● 假若A= = B,依其运算符运算 ● 假若A 为null 或B 为null 时:= = /eq 则回传false,!= / ne 则回传true ● 假若A 或B 为BigDecimal 时,将另一个转为BigDecimal,则: · 假若运算符为 = = / eq,则 回传A.equals(B) · 假若运算符为 != / ne,则 回传 !A.equals(B) ${ param.password1 = = param.password2 } ● 假若A 或B 为Float、Double 时,皆转为Double 类型,然后依其运算符运算 ● 假若A 或B 为BigInteger 时,将另一个转为BigInteger,则: ·假若运算符为 = = / eq,则 回传A.equals(B) ·假若运算符为 != / ne,则 回传 !A.equals(B) ● 假若A 或B为Byte、Short、Character、Integer 或Long时,皆转为Long 类型,然后依其 运算符运算 ● 假若A 或B 为Boolean 时,将另一个也转为Boolean,然后依其运算符运算 ● 假若A 或B 为String 时,将另一个也转为String,然后做词汇上的比较 ● 否则,假若A.equals(B)产生异常时,则 错误! ● 否则,然后依其运算符运算,回传 A.equals(B) Tomcat 上的jsp-examples 中,有一个EL 关系运算符的范例basic-comparisons.jsp。 EL 逻辑运算符只有三个: 逻辑运算符 说 明 范 例 结 果 && 或 and 交集 ${ A && B } 或 ${ A and B } true / false || 或 or 并集 ${ A || B } 或 ${ A or B } true / false ! 或 not 非 ${ !A } 或 ${ not A } true / false 下面举几个例子: ${ param.month = = 7 and param.day = = 14 } ${ param.month = = 7 || param.day = = 14 } ${ not param.choice } EL 逻辑运算符的规则很简单: (1) A {&&, and, || 或 or } B ·将A 和B 转为Boolean,然后依其运算符运算 (2) {!, not}A ·将A 转为Boolean,然后依其运算符运算 EL 除了上述三大类的运算符之外,还有下列几个重要的运算符: (1) Empty 运算符 (2) 条件运算符 (3) ( ) 括号运算符 (1) Empty 运算符 Empty 运算符主要用来判断值是否为null 或空的,例如: ${ empty param.name } 接下来说明Empty 运算符的规则: (1) {empty} A ● 假若A 为null 时,回传true ● 否则,假若A 为空String 时,回传true ● 否则,假若A 为空Array 时,回传true ● 否则,假若A 为空Map 时,回传true ● 否则,假若A 为空Collection 时,回传true ● 否则,回传false (2) 条件运算符 所谓条件运算符如下: ${ A ? B : C} 意思是说,当A 为true 时,执行B;而A 为false 时,则执行C。 (3) 括号运算符 括号运算符主要用来改变执行优先权,例如:${ A * (B+C) } 至于运算符的优先权,如下所示(由高至低,由左至右): · []、. · ( ) · - (负)、not、!、empty · *、/、div、%、mod · +、- (减) · <、>、<=、>=、lt、gt、le、ge · = =、!=、eq、ne · &&、and</span>
可以大致浏览下,以后用的时候可以再去看!!
0 0
- EL运算表达式和JSTL标签
- EL表达式和JSTL标签
- EL表达式和 JSTL标签
- el表达式和jstl标签
- EL表达式和JSTL标签
- EL表达式和JSTL标签
- EL表达式和JSTL标签
- jstl标签和EL表达式
- EL表达式和JSTL标签
- EL表达式和JSTL标签
- El表达式 和 JSTL标签
- EL表达式和JSTL标签
- EL表达式和JSTL标签
- EL表达式和JSTL标签
- JSTL标签和EL表达式
- el表达式和JSTL标签
- EL表达式和jstl标签
- el表达式和jstl标签
- 正则替换换行符和把 br 替换成换行符
- bzoj2346[Baltic 2011]Lamp
- 使用bash shell删除目录中的特定文件的3种方法
- PAT1022. Digital Library
- Linux字体安装
- EL运算表达式和JSTL标签
- 学习OpenCV——Fast(特征点篇) (&DrawMatchFlags)
- 浅谈网络营销:从卖鸡蛋面的老板联想到个人站长
- Comodo Positive SSLSSL证书每年40元
- 当Actionbar的Tab中Fragment页面大于等于3个的时候会重新Create页面的问题
- 工作中 makefile 使用记录
- 8. 包及访问权限控制 --- 学习笔记
- Intel大坑之一:丢失的SSE2 128bit/64bit 位移指令,马航MH370??
- 浅谈工厂模式