1

こんにちは、これは悪いデザインですか?すべてが計画通りに進んだ場合、Profile を返却したいと思います。そうでない場合は、カスタム エラー メッセージを返したいと思います。

これでよろしいですか?

@RequestMapping(value = "/{userId}", method = RequestMethod.PUT)
public @ResponseBody
Object saveUser(@PathVariable Long userId, ModelMap data, @Valid Profile profile, BindingResult bindingResult, HttpServletResponse response) {

    if (bindingResult.hasErrors()) {
        response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
        return ValidationUtil.createValidationErrors(bindingResult);
    }
    profileService.save(profile);
    return profile;
}
4

2 に答える 2

1

@ExceptionHandler (Exception.class) および @ResponseStatus アノテーションを使用する必要があります 。

@ExceptionHandler (Exception.class) 
@RequestMapping(value = "/{userId}", method = RequestMethod.PUT) 
public @ResponseBody 
Profile saveUser(@PathVariable Long userId, ModelMap data, @Valid Profile profile, BindingResult bindingResult, HttpServletResponse response) { 

    if (bindingResult.hasErrors()) { 
        response.setStatus(HttpServletResponse.SC_BAD_REQUEST); 
        throw new Exception("message");
        if(ValidationUtil.createValidationErrors(bindingResult)) {
            throw new Exception("message");
        }
    } 
    profileService.save(profile); 
    return profile;
}

詳細については、

http://jnb.ociweb.com/jnb/jnbNov2010.html

http://www.stormpath.com/blog/spring-mvc-rest-exception-handling-best-practices-part-1

http://blog.cuttleworks.com/2011/12/spring-restful-controllers-and-error-handling/

于 2012-10-01T12:19:38.207 に答える
0

プロファイル オブジェクトへのアクセスが必要な場合は、それをセッションまたはリクエスト コンテキストに追加することをお勧めします。次に、saveUser メソッド (または必要に応じて ModelAndView オブジェクト) から文字列を返すことができ、その後の要求で引き続きオブジェクトを使用できます。

于 2012-10-01T12:18:06.667 に答える