SpringToolSuiteを使用してjavaの勉強をしている初心者です。 アノテーションによるバリデーションチェックで引っかかった項目に対してオブジェクトリテラルによるJSONを生成したいと考えています。オブジェクトリテラルは以下のキー:データにしたく、エラーメッセージを変換しているのですが、うまくいきません。 オブジェクトリテラル : {"(エラーとなる値の項目名)":"(エラーメッセージ)"} for文でまわすと、最後に取得したキー:データがエラーメッセージ分作られてしまいます。 恐らくfor文の作り方が悪いと思うのですが、ご教示いただけないでしょうか。 宜しくお願い致します。 生成したいJSON {"input_a":"文字が入っていません", "input_a":"半角数字で入力してください", "input_b":"文字が入っていません"} 現状 {"input_b":"文字が入っていません", "input_b":"文字が入っていません", "input_b":"文字が入っていません"} ---------------controller--------------- @RequestMapping(value = "insertController", method = RequestMethod.GET) @ResponseBody public String insertController(@Valid @ModelAttribute TourokuDto tourokuDto, BindingResult result) { String validate_key; //エラーとなる値の項目名 String validate_message; //エラーメッセージ String validateMessage = StringUtils.EMPTY; JsonMessageModel errorMessageModel = new JsonMessageModel(); ValidationMessageModel validationMessageModel = new ValidationMessageModel(); // バリデーションチェック if(result.hasErrors()) { // エラー情報を取得 List errors = result.getFieldErrors(); for (FieldError error : errors) { // バリデーションエラーのIDを取得 validate_key = error.getField(); // バリデーションエラーのメッセージを取得 validate_message = error.getDefaultMessage(); // モデルに格納 validationMessageModel.setValidate_key(validate_key); validationMessageModel.setValidate_message(validate_message); //エラーメッセージをモデルからJSONメッセージモデルに格納? errorMessageModel.addContents(validationMessageModel); } validateMessage = convertModelToJson(errorMessageModel); return validateMessage; } } private String convertModelToJson(JsonMessageModel jmModel) { String json = StrubgYtuls.EMPTY; try { ObjectMapper mapper ~ new ObjectMapper(); json = mapper.writeValueAsString(jmModel); } catch (JsonGenerationException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return json } ---------------validationMessageModel--------------- public class ValidationMessageModel extends BaseModel { /** エラーとなる値の項目名 */ private String validate_key = ""; /** エラーメッセージ */ private String validate_message = ""; /** * エラーとなる値の項目名を取得します。 * @return 店舗ID */ public String getValidate_key() { return validate_key; } /** * エラーとなる値の項目名を設定します。 * @param shopsId 店舗ID */ public void setValidate_key(String validate_key) { this.validate_key = validate_key; } /** * エラーメッセージを取得します。 * @return エラーメッセージ */ public String getValidate_message() { return validate_message; } /** * エラーメッセージを設定します。 * @param layoutId エラーメッセージ */ public void setValidate_message(String validate_message) { this.validate_message = validate_message; } }
↧