jstl if数值比较问题

kkobebryant 2010-10-22 07:57:45

<c:if test="${a.credit==0}">
DR
</c:if>

a.credit的值为 0.000 , 要怎么转化才能比较? 不要 <c:if test="${a.credit*1==0}"> 的类似答案 ,谢
...全文
372 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
blazingfire 2010-10-22
搞了半天早到一个jstl处理方法,用fmt:parseNumber 装换成数字再比较:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<style type="text/css"></style>
</head>
<body>

<c:set var="credit" value="0.000" />
<c:if test="${credit==0}">
DR1
</c:if>

<fmt:parseNumber value="${credit}" type="number" var="credit2"></fmt:parseNumber>
<c:if test="${credit2==0}">
DR2
</c:if>

</body>
</html>
回复
blazingfire 2010-10-22
3楼的方法不容易呀。

楼主自己给的方法还简洁多了
回复
magong 2010-10-22
有一个方案,用起来不是很麻烦,实现嘛,有点麻烦。
定义个自定义标签
类代码:
public class MyFunctions {
public MyFunctions(){}
public static int toInt(double in){
return (int)in;
}
}

TLD文件
	<uri>MyFunctions</uri>
<tlib-version>1.0</tlib-version>
<jsp-version>2.0</jsp-version>
<short-name>MyFunctions</short-name>
<function>
<name>toInt</name>
<function-class>xxx.MyFunctions</function-class>
<function-signature>int toInt(double)</function-signature>
</function>

然后在页面中就可以这样:
<%@ taglib uri="MyFunctions" prefix="myf" %>
<c:if test="${myf:toInt(a.credit) == 0}">
DR
</c:if>

回复
magong 2010-10-22
还别说,我就觉得你自己给的方案是最好的。
回复
Elim-Zhang 2010-10-22
把0改成0.000试一下
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2010-10-22 07:57
社区公告
暂无公告