当前位置: 首页 > 知识库问答 >
问题:

JSP Page中JSTL格式标签的问题

皇甫琛
2023-03-14

我的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等于零,背景色应该是石灰色,但它显示粉红色。Y

共有2个答案

顾恺
2023-03-14

如果你想要格式######对于减法的任何值,请尝试以下方法:

<%@ 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>

这应该行得通,我刚测试过。如果可行,请投票支持我。

百里涛
2023-03-14

您可以使用以下命令将数字格式设置为整数:

<fmt:formatNumber var="i" maxIntegerDigits="3" maxFractionDigits="0"
                   type="number" value="${mm}" />

然后在这里比较:

<td style="${i eq 0 ? 'background-color: lime':'background-color:  pink'}">
 类似资料:
  • JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。 JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。 除了这些,它还提供了一个框架来使用集成JSTL的自定义标签。 根据JSTL标签所提供的功能,可以将其分为5个类别。 核心标签 格式化标签 SQL 标签 XML 标签 JSTL 函数 JSTL 库安装 Apache To

  • 问题内容: 我遇到了轴刻度标签的格式问题。我禁用了y_axis的偏移量: 并尝试将其设置为科学格式,但我得到的是: 但我期望这样的事情: 或类似。 我真正想要的是这样的: 我可以尝试将标签设置为静态,但是最后我将拥有数十或数百个具有不同值的图,因此需要动态设置。 一种替代方法是将y_axis偏移量放置为标签,但是我也不知道如何执行此操作。 问题答案: 有很多方法可以做到这一点 您可以调整功率限制(

  • 问题内容: 我想格式化Struts 2中标签显示的数字。有一个值。我怎样才能做到这一点?我应该使用吗? 或者,也许我必须使用标签并在资源文件中定义我的格式? 问题答案: 您需要使用带。 属性文件: JSP: 该答案说明了如何使用和使用格式掩码。

  • 问题内容: 我收到以下错误: 我尝试遵循此教程,但是如果我写的话,它将给我一个错误 我是新手,有人可以向我指出正确的方向吗? 问题答案: 我的建议是完全忘记标记,并使用纯Java(在servlet或首选MVC框架的操作中)进行所有数据库操作。这个servlet将建立一个bean实例列表,准备由您的JSP显示。用于将请求从servlet调度到JSP。 甚至官方的Java EE教程 都说: 表7-7中

  • 我从JSP页面上的一个对象中获得了一个变量: <代码> 变量的值是NAT,这是正确的,我想为这个值应用某些页面元素。如何使用标签来知道大小写?我尝试了类似的方法 但是上面没有显示任何内容。我该怎么做?或者我可以使用Scriptlet吗。 感谢您的任何回答或评论。

  • 问题内容: 我正在尝试在JSX内部使用pre标签。当您在JSX中使用pre标签时,它根本不格式化。为什么?为了使用pre标签,我需要执行以下操作: 为什么? 问题答案: 使用模板文字 模板文字允许使用多行字符串,以保留前导/尾随空格和换行符。