3

试图在 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
4

1 回答 1

3

尝试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

Spring MVC spring:bind 标签是如何工作的,status.expression 和 status.value 的含义是什么?

于 2012-12-30T09:33:55.360 回答