2017-07-15 30 views
0

JSONと複数のファイルからなるマルチパートフォームデータを受け入れ、サードパーティのAPIに渡す必要があります。すべてのパラメータがファイル & JSON、すなわち持っていない要求は、行われた場合、コントローラはリクエストパラメータが不足している場合にエラーを投げる

@Controller 
{ 
    //some code 
    @PostMapping("/submit") 
    public void post(@ModelAttribute @Valid Submit submit) throws Exception{ 
    getName() 
    } 
} 

のように見えます

@Component 
public class Submit{ 
    private Multipart file; 
    private String json; 
    //getters setters 
} 

として現在、私はコンポーネントを作成している

Postmanクライアントから/ submit APIに至るまで、Spring Bootはあらゆる種類の検証例外/不良要求エラーをスローしません。

代わりにgetName()の機能が使用されます。

サブミットモデルのパラメータのいずれかが欠落している場合、例外がスローされるようにするにはどうすればよいですか?

@Validは、これを実行する担当者ではありませんか?

ありがとうございます!

+0

あなたは有効であるべきだと言っていますが、検証する必要があるとは言いません... –

+0

同意します。 @Notnullが見つからなかった – user1477054

答えて

0

注釈とBindingResultを使用してください。あなたの提出クラスで :

import javax.validation.constraints.NotNull; 
public class Submit{ 
    @NotNull 
    private Multipart file; 
    @NotNull 
    private String json; 
    //getters setters 
} 

postメソッドでは、あなたはBindingResultを供給する必要があります。

import org.springframework.validation.BindingResult; 
@PostMapping("/submit") 
public void post(@ModelAttribute @Valid Submit submit, BindingResult bindingResult, HttpServletResponse response) throws Exception{ 
    if (bindingResult.hasFieldErrors()){ 
    response.setStatus(HttpServletResponse.SC_BAD_REQUEST); 
    return; 
    } 
    getName() 
} 

これはうまくいくはずです。

+0

ありがとう!それは助けになった! – user1477054

関連する問題