ページを更新しない方法でフォームを書き直そうとしています。言い換えれば、ブラウザが送信時に GET/POST リクエストを行わないようにする必要があります。 jQuery はこの問題の解決に役立つはずです。 これが私のテーブルです (いくつかあります):
リーリーこれは私の JS です:
リーリーこれは私の REST コントローラー ハンドラーです:
リーリーユーザー
エンティティ:
役割
エンティティ:
送信ボタンを押すと、コンソールにこれが表示されます
リーリー String
だけではなく、何らかの方法で Collection
の JSON 表現を渡す必要があるようです。以前のプロジェクトでは、jQuery を使用せずに、カスタム Formatter
を使用して
String
グーグルで調べてみたところ、Thymeleafには toJson()
メソッドがないようです。つまり、独自のメソッドを作成することはできますが、それを Thymeleaf テンプレートで使用する方法がわかりません。さらに、これは最適な解決策ではない可能性があります
これはブート プロジェクトなので、Jackson データ バインディング ライブラリがあります
コレクションをフォームから JS イベント ハンドラーに、さらに REST コントローラーに適切に渡すにはどうすればよいですか?
StackOverflow によって提案された複数の同様の質問を確認しました。これらは関連しているようには見えません (たとえば、C# や PHP などの異なるプログラミング言語が含まれています)
更新: これを試してみました。残念ながらそれもうまくいきませんでした! (同じエラーメッセージ)
リーリー リーリーただし、このメソッドは期待どおりに機能します
リーリーUPD2: GPT4 はこれを推奨しています
リーリー今は本当に奇妙です。ただし、データベースはまだ変更されていません。 IDE コンソールにはエラーはなくなり、PUT リクエストに関する記述もまったくなくなりました (前回の試行でも存在しました)。また、ブラウザのログには次のメッセージが記録されます
リーリー意味が分かりません!
UPD3: GPT4 は非常に賢いです。とにかく私より賢い。これは全くの真実です。 UPD2 で機能しない理由は、次のことを無視したためです:
Permissions フィールドは、文字列としてではなくオブジェクトの array として送信する必要があります。
これは、StringJoiner
のプレフィックスとサフィックスとして中かっこではなく角かっこを使用する必要があることを意味します:
これも変更しました
リーリーこれまで (すぐにこれをしなかった私が愚かでした)
リーリーそして - ヴィオラ - ついに入手可能になりました!
GPT4 も私が
を使用していることに気づきました リーリー ### の代わりに ### リーリー私もこの問題を解決しました
Collection
であっても)、new StringJoiner(", ", "{", "}")
→new StringJoiner(", ", "[", "]")
# p>フォームの子をターゲットにする必要があります-
ユーザー名: $('input[name=username]').val()
→
ユーザー名: $(this).find('input[name=username]') 。 val()以上
ユーザー名: $(this).find('[name=username]').val()など
は
'input[名前=部門]'
→
'select[名前=部門]'または
'[名前=部門]'