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

valueELで解決する代わりに、name属性に文字列リテラルを使用してみてください

<spring:bind path="value">
     <input type="text" name="value" value="${value}"/>
</spring:bind>

また、フィールド値を新しいオブジェクトに移動します。現在、コードがコントローラーのフィールドまたはコントローラーのゲッターを使用しているとは思いません。

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 に答える