フロント側をFlutter、バックエンド側SpringBootの自動作成勉強中
・MouseComputerのノートPCを192.168.1.13にアドレス固定、DELLのノートPCを192.168.1.8」アドレス固定にしたのは効果あったみたいで、今日は朝からDELLのノートPCにつないだスマホ実機から、MouseComputerのノートPC「http://192.168.1.13:8080/login」が動いた。この調子ならストレスがなくていい。
・昨日の夜から、今朝も、DELLのノートPCのキーボードがおかしい(押しても反応しなかったりする)ので、再起動した。ら、普通になった。(いつもはHDDからの立ち上げが遅すぎるのでレジュームで終わらせていた)これも不思議だ、キーボードが壊れたわけでもないのに。
・ユーザー登録でエラーの時Flutter画面の先頭にエラーメッセージを出した。ListViewで画面を作っているので先頭に移動させないとエラーメッセージが見えない。そこでScrollControllerを使って先頭に移動した。
・さらに、正常終了でもエラー終了でも、カーソルも先頭にしておきたく思った。ので、FocusNode使った。
こんな感じ。
class _UserRegisterState extends State<UserRegister> {
late ScrollController _scrollController;
late FocusNode _myFocusNode;
Widget build(BuildContext context) {
・・・
child : ListView(
controller: _scrollController,
・・・
child:Column(
children:<Widget>[TextFormField(
// フォームを含むウィジェットが作成された時点でフォーカスする。
autofocus: true,
focusNode: _myFocusNode,
・・・
// 画面を先頭に戻す
_scrollController.animateTo(0,
duration: const Duration(milliseconds:600),
curve: Curves.easeInQuint);
@override
void initState() {
super.initState();
_scrollController= ScrollController();
_myFocusNode = FocusNode();
}
@override
void dispose() {
_scrollController.dispose();
// Clean up the focus node when the Form is disposed.
super.dispose();
}
・SpringBootの、すべてのコントローラーに共通する例外処理クラス(ControllerAdviceクラス)の戻り値をJSONにした。
こんな感じ。
/**
* すべてのコントローラーに共通する例外処理クラス(ControllerAdviceクラス)
* 共通例外(”システムに問題が発生しました”)を戻す。
*
*/
@ControllerAdvice
//log出力用
@Slf4j
public class CustomControllerAdvice {
@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", "システムに問題が発生しました");
map.put("mode", "SystemError");
return map;
}
}
■2022/06/15に、Flutter_JavaSpringプログラム自動作成◎自動生成ツールをVectorに載せました。Zenn本も書きました。使ってみての感想や間違いの指定や、こうやったほうがいいとかの情報があればメールください。
・Zenn本(Flutter_JavaSpringプログラム自動作成)
zenn.dev