FrontPage > Spring Bootの覚書

エラーメッセージの表示

入力チェックで作成したソースを利用して説明する。

1. 入力チェックのエラーメッセージ

2. 入力チェック以外のエラーメッセージ

  • 表示したいエラーメッセージをメッセージファイルに設定する。

    (src/main/resources/messages.properties抜粋)
    message.err.sample=エラーが発生しました。{0}
    

  • コントローラクラスでエラーメッセージをセットする。

    (例 src/main/java/com/ziqoo/sbSample/web/ValidSampleContrller.java抜粋)
        @RequestMapping(value="/validSample", method = RequestMethod.POST)
        public String postValidSample(@ModelAttribute("form") @Validated ValidSampleForm form, BindingResult result, Model model) {
    
            if (result.hasErrors()) {
                for(FieldError err: result.getFieldErrors()) {
                    log.debug("error code = [" + err.getCode() + "]");
                }
            }
    
    //      何らかの処理
    //      if (エラー発生) {
                result.reject("com.ziqoo.err.sample",new Object[]{"ふふふ"}, "default Message");
    //      }
            return "validSample";
        }
    

  • 画面での表示
    入力チェックでの「4. エラーメッセージの一覧表示」と同じ
    ${e.global}がtrueとなる。

    (src/main/resources/templates/validSample.html抜粋)
      <form th:action="@{/validSample}" th:object="${form}" method="post">
        <ul>
          <li th:each="e : ${#fields.detailedErrors()}"
            th:class="${e.global}? globalerrMsg : fielderrMsg"
            th:text="${e.message}" />
        </ul>
    
  • 実行結果

    結果

表示方法いろいろ

  • すべてのエラーを表示する。

    <div th:if="${#fields.hasAnyErrors()}">
      <p th:each="err : ${#fields.allErrors()}" th:text="${err}">...</p>
    </div>
    

  • Global errorsnのみ表示する。

    (その1)
    <ul th:if="${#fields.hasErrors('global')}">
      <li th:each="err : ${#fields.errors('global')}" th:text="${err}"></li>
    </ul>
    

    (その2)
    <ul th:if="${#fields.hasGlobalErrors()}">
      <li th:each="err : ${#fields.globalErrors()}" th:text="${err}"></li>
    </ul>
    




添付ファイル: filesbemsg-page1.png 259件 [詳細]

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-27 (金) 20:40:19 (993d)