![](/img/trans.png)
[英]How to get JSTL Tag like ${Some} in jsp page but Some is not a value
[英]issue with format tag of JSTL in JSP Page
我的JSP頁面中有以下代碼
<fmt:formatNumber value="${(r.p51_vmeset-row.p51_vmeset)}" maxFractionDigits="2" minIntegerDigits="2" var="mm" />
<td style="${mm eq 0 ? 'background-color: lime':'background-color: pink'}">
<c:out value="${mm}" ></c:out></td>
通過此代碼,我想顯示的是,如果小數部分的前兩位數字為零,整數部分為零,則無論減法結果如何,然后結果必須存儲在變量mm中,並且石灰顏色應顯示為maxFractionDigits =“ 2 “ minIntegerDigits =“ 2”等於減法的零。
但是顯示的是,如果結果為零,則僅顯示石灰。但是我希望,如果整數部分和至多兩位的小數部分為零,則石灰顏色也應顯示為列的背景。
范例-
假設我的r.p51_vmeset值為-0.4000977且row.p51_vmeset值為-0.40009767。然后將這兩個值相減將得到-0.0000003,但我希望將此值修剪為00.00,並且顏色應為石灰而不是粉紅色。
我嘗試將結果打印為-
<fmt:formatNumber value="${(r.p99_vmeset-row.p99_vmeset)}" maxFractionDigits="2" minIntegerDigits="2" var="mm" />
**<c:out value="${mm}"></c:out>**
<td style="${mm eq 0 ? 'background-color: lime':'background-color: pink'}" >
<c:out value="${mm}" ></c:out></td>
c:out顯示值為00.00,但是當我比較它時,如果mm等於零,則背景色應為石灰,但其顯示為粉紅色。
您可以使用以下命令將數字格式化為整數:
<fmt:formatNumber var="i" maxIntegerDigits="3" maxFractionDigits="0"
type="number" value="${mm}" />
然后在這里比較:
<td style="${i eq 0 ? 'background-color: lime':'background-color: pink'}">
如果您想將格式##。##表示為任何減值,請嘗試以下操作:
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
//use pattern="00.00"(0 represents a digit), instead of max/min
<fmt:formatNumber value="${(r.p51_vmeset-row.p51_vmeset)}" pattern="00.00" var="mm" />
//remove "-" in case it's negative value
<c:set var="mm2" value="${fn:replace(mm, '-', '')}" />
//compare it with string '00.00', not number
<td style="${(mm2 eq '00.00') ? 'background-color: lime':'background-color: pink'}">
<c:out value="${mm2}" ></c:out></td>
我剛剛測試過,這應該可以工作。 如果可行,請投票給我。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.