---- 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
有什么问题? 我该怎么办?
答案 0 :(得分:5)
声明字段应格式化为数字。支持 按样式或自定义模式字符串格式化。 可以应用于任何 JDK java.lang.Number类型。
您正在原始字段上使用它。显然,这不包括在内。使用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。