java – SpEL(@NumberFormat)无效
作者:互联网
—- SampleVO
@NumberFormat(pattern = "###,##0")
private int money=100000;
—–控制器
@RequestMapping(value="/com/spelSample.do")
public String spelSample(SampleVO sampleVO, Model model){
model.addAttribute("sampleVO", sampleVO);
return "sampleResult";
}
——- sampleResult.jsp
money: <spring:eval expression="sampleVO.money"/>
– – -期望
money : 100,000
——但是,结果是
money : 100000
问题是什么?
我该怎么办?
解决方法:
Declares that a field should be formatted as a number. Supports
formatting by style or custom pattern string. Can be applied to any
JDK java.lang.Number type.
您正在原始字段上使用它.显然,这不包括在内.使用Integer而不是int.
编辑:更准确地说,不是每个可能的java.lang.Number子类都被覆盖.以下是NumberFormatAnnotationFormatterFactory
的相关摘录:
public NumberFormatAnnotationFormatterFactory() {
Set<Class<?>> rawFieldTypes = new HashSet<Class<?>>(7);
rawFieldTypes.add(Short.class);
rawFieldTypes.add(Integer.class);
rawFieldTypes.add(Long.class);
rawFieldTypes.add(Float.class);
rawFieldTypes.add(Double.class);
rawFieldTypes.add(BigDecimal.class);
rawFieldTypes.add(BigInteger.class);
this.fieldTypes = Collections.unmodifiableSet(rawFieldTypes);
}
这意味着缺少来自并发api的Atomic *类,以及来自Commons / Lang等框架的所有自定义Number实现.
更新:(见评论)你还需要添加< mvc:annotation-driven>到您的context.xml.
标签:java,spring-mvc,spring,annotations,spring-el 来源: https://codeday.me/bug/20190621/1253445.html