访问JSTL中计算的jsp中的JSTL变量



在jsp中,我有这一部分,并且可以很好地进行

<c:forEach var="info" items="${infoList}" >
<tr>
    <td>${info.key} </td>
    <td>${info.total}</td>
    <td>${info.delay}</td>
</tr>
</c:forEach>

这里的infoList来自struts动作类,它是Info 类的ArrayList

public class Info{
private String key;
private String total;
private String delay
}

现在我需要添加另一个<td>,它将打印像${info.delay}*100/${info.total}一样计算的百分比,但将打印小数后两位数。

我试过这个

${ info.totalDelay*100/info.totalShipment } 

其打印百分比,但不能限制为2位数。在java中,我可以使用

NumberFormat formatter = new DecimalFormat("#0.00");

但我将如何做到这一点,我在这里,因为在<% %> (jap tag)中,我不能使用${}

我可以如何访问<% %>中的这些变量吗?或者我可以在<c:>标签中使用formatter .format()

使用JSTL格式编号

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<fmt:formatNumber type="number" minFractionDigits="2" maxFractionDigits="2" value="${ info.totalDelay*100/info.totalShipment } " />

我想好了

在顶部我这样做:

<%
 NumberFormat numberFormat=new DecimalFormat("#.##");
%>

我做了这个:

<td>
<c:set var="tl" value="${info.total}"></c:set>
<c:set var="dl" value="${info.delay}"></c:set>
<jsp:useBean id="tl" class="java.lang.String"/> 
<jsp:useBean id="dl" class="java.lang.String"/> 
<%
     out.println(numberFormat.format(Double.parseDouble(dl)*100/Integer.parseInt(tl)));
%>
</td>

最新更新