kazpgmの日記

『プログラム自動作成@自動生成』作成の日記

フロント側をFlutter(スマホ)Thymeleaf(PC)、バックエンド側SpringBootの自動作成勉強中

10:26
①バックエンドSpringBoot側で例外が発生したとき、Flutter側は『エラー発生』画面になる予定なのだけど、ならなかったので、今までずーっと気になっていた。調査した結果解決した。原因はモードの設定間違いだった。そう、そう、Flutter側でmodeはmessage_form.dartのMessageFormクラスに持っているけど、バックエンドSpringBoot側はFormCommクラスに持たせたから、Flutter側でMessageFormクラスmodeに取り込むとき、『mode = _resDataMap["formComm"]["mode"] ?? "";』としていたのだった。

・うまく、この画面がでるようになった

・バックエンドSpringBoot側のソース

package com.kaz02u.demo.controller;

import java.util.HashMap;
import java.util.Map;

import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

import com.kaz02u.demo.fForm.FormComm;

import lombok.extern.slf4j.Slf4j;

/**
 * すべてのコントローラー(Flutter用)に共通する例外処理クラス(ControllerAdviceクラス)
 * 共通例外(”システムに問題が発生しました”)を戻す。
 *
 */
@ControllerAdvice(basePackages="com.kaz02u.demo.controller.adminFlutter")
//log出力用
@Slf4j
public class CustomControllerAdviceAdminFlutter {
  @ResponseBody
  @ExceptionHandler
  public Map<String, Object> handleException(Throwable e) {
    log.error("System Error occurred.", e);
        e.printStackTrace();
    Map<String, Object> map = new HashMap<String, Object>();
    map.put("errorMessage", "システムに問題が発生しました");
<<修正前 start>>
    map.put("mode", "SystemError");
<<修正前 end>>
<<修正後 start>>
    FormComm formComm = new FormComm();
    formComm.setMode("SystemError");
    map.put("formComm", formComm);
<<修正後 end>>
    return map;
  }
}

■2022/06/15に、勉強した成果:『Flutter_JavaSpringプログラム自動作成◎自動生成ツール』をVectorに載せました。Zenn本も書きました。使ってみての感想や間違いの指定や、こうやったほうがいいとかの情報があればメールください。
Vector
www.vector.co.jp
・Zenn本(Flutter_JavaSpringプログラム自動作成)
zenn.dev