@NumberFormat注释不起作用

试图在JSP中显示货币符号,但我看不到。我做了研究吗,我只是不知道我应该添加些什么才能使它起作用。这就是我所拥有的。

<mvc:annotation-driven />

控制者

@NumberFormat(style = Style.CURRENCY)

private Double value = 50.00;

@ModelAttribute("value")

@NumberFormat(style = Style.CURRENCY)

public Double getValue() {

return value;

}

@RequestMapping(method = RequestMethod.GET)

public ModelAndView loadForm(@ModelAttribute("user") User user) {

ModelAndView instance

modelAndView.addObject("value", 100.00);

return modelAndView;

}

JSP

<spring:bind path="value">

<input type="text" name="${value}" value="${value}"/>

</spring:bind>

<spring:bind path="value">

${value}

</spring:bind>

输出量

 <input type="text" name="value" value="100.0"/>

100.0

回答:

尝试使用字符串文字value作为name属性,而不是用EL解析它

<spring:bind path="value">

<input type="text" name="value" value="${value}"/>

</spring:bind>

同样,将字段值移动到新对象中。目前,我不认为代码正在使用控制器中的字段或控制器中的getter。

public class MyForm(){

@NumberFormat(style = Style.CURRENCY)

private Double value = 50.00;

@ModelAttribute("value")

@NumberFormat(style = Style.CURRENCY)

public Double getValue() {

return value;

}

}

然后将对象添加到控制器中的模型中:

@RequestMapping(method = RequestMethod.GET)

public ModelAndView loadForm(@ModelAttribute("user") User user) {

ModelAndView instance

modelAndView.addObject("myForm", new MyForm());

return modelAndView;

}

然后通过jsp访问:

<spring:bind path="myForm.value">

<input type="text" name="${status.expression}" value="${status.value}"/>

</spring:bind>

<spring:bind path="myForm.value">

${status.value}

</spring:bind>

目前,代码的主要问题是它没有使用字段/访问器,只是在模型中放置了一个值,而没有使用任何带注释的字段/方法。

参考:http : //www.captaindebug.com/2011/08/using-

spring-3-numberformat-

annotation.html#.UOAO_3fghvA

以上是 @NumberFormat注释不起作用 的全部内容, 来源链接: utcz.com/qa/436184.html

回到顶部