0

コントローラーの検証にSpring 3を休止状態で使用しています。

フォームが正しい場合、必要なページにリダイレクトされますが、検証に問題がある場合、フォームが壊れて「見つかりません」ページに送られます。私の構造は正しいと思うので、わかりません。

@RequestMapping(params = "guardaNuevo", method = RequestMethod.POST)
public String guardaSimCard(  @ModelAttribute("validator")@Valid CatalogoSimCardValidator validator, HttpServletRequest request,Model model,BindingResult result) {
    System.out.println("--------------------------------");

    model.addAttribute("CatalogoSimCardValidator", new CatalogoSimCardValidator());
    System.out.println(result);
    System.out.println("no errores");
}

私のバリデータは次のようになります。

public class CatalogoSimCardValidator   {

    @NotNull 
    private int idSimCard;
    @NotEmpty (message="La descripción no puede venir vacía")
    private String descripcionSimCard="";
    @NotNull
    @NumberFormat(style=Style.CURRENCY)
    private double precio;

    @NumberFormat(style=Style.NUMBER)
    private int version=0;
    @NotEmpty
    private String descripcionVers;

そして明らかに私は行方不明ではありません:

<context:component-scan base-package="com.telcel.sds.crm.dlyscrm.precios.web"/>
<context:annotation-config/>
<mvc:annotation-driven  />
4

1 に答える 1

0

メソッドの署名を変更して、パラメーターを atパラメーターBindingResultの隣に配置します@Valid

public String guardaSimCard(@ModelAttribute("validator") @Valid CatalogoSimCardValidator validator, BindingResult result, HttpServletRequest request, Model model) {

あなたが得る例外はIllegalStateException(あなたがそれを投稿した場合に役立つでしょう)ErrorsMethodArgumentResolverと州から来ていると思います

Errors/BindingResult 引数は、適用先のモデル属性、@RequestBody または @RequestPart 引数の直後に宣言する必要があります。[...]

于 2013-09-04T18:35:34.447 に答える