フロント側を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