禁用/转换java使大数字变小(1000000000到1e10)使用spel表达式

mfuanj7w  于 2021-06-27  发布在  Java
关注(0)|答案(1)|浏览(398)

我使用spring spel从xml消息中使用xpath提取值1000000000。然而,它在科学记数法中显示为1e10,但我想保持相同的格式(1000000000)。
如何使用spel语言表达式实现这一点?

derivedvalue=从xpath中提取的值,即1000000000

我尝试在转换规则中使用java decimalformat,如下所示,但不起作用并引发spel异常:
新建java.text.decimalformat.getintegerinstance().format((t(java.lang.double)).parsedouble(#derivedvalue)

p4rjhz4m

p4rjhz4m1#

使用 longValue()Double .
使用spring集成 #xpath 像这样运作。。。

@Bean
public ApplicationRunner runner(BeanFactory bf) {
    return args -> {
        Object value =
                new SpelExpressionParser()
                        .parseExpression("#xpath(#root, '/foo', 'number').longValue()")
                        .getValue(IntegrationContextUtils.getEvaluationContext(bf), "<foo>10000000000</foo>");
        System.out.println(value);
    };
}

相关问题