代码之家  ›  专栏  ›  技术社区  ›  Kinaeh

为什么JSTL parseNumber解析1000.0到10000?

  •  1
  • Kinaeh  · 技术社区  · 8 年前

    我有一个输入表单,我想在其中插入一些数字并计算一些结果。所以我的输入字段看起来像

    <fmt:parseNumber var = "a" type = "number" 
        value = "${object.someAttribute}" integerOnly = "true"/>
    
    <input type="number" name="someAttribute" required pattern="[0-9]" value="${a}" />
    

    :首次访问时,用户应插入一个数字(整数)。在计算中,所有值均为 Double 防止铸造副作用。当站点刷新/用户希望重复计算时,输入字段应预设为最近使用的值。所以我试着 fmt:parseNumber 要分析 双重的 从对象到 Integer .

    第一次尝试时,我忽略了 integerOnly = "true" 但出现错误(如' 1000.0 '不是有效的输入,正如我指定的那样,这是可以理解的 pattern="[0-9]" ).

    但是有 integerOnly 设置时,它会更改 1000 到 10000 . 我做错了什么?我如何解析它来实现我的目标?

    1 回复  |  直到 8 年前
        1
  •  1
  •   Jasper de Vries nndru    8 年前

    如果您使用的是EL 2.2+,那么只需在 Double 对象:

    ${yourDouble.intValue()}
    

    请参见: