コレクションをフォームから JS イベント ハンドラーに、そして REST コントローラーに適切に渡すにはどうすればよいですか?
P粉807397973
P粉807397973 2024-01-10 17:25:43
0
1
409

ページを更新しない方法でフォームを書き直そうとしています。言い換えれば、ブラウザが送信時に 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 も私が

を使用していることに気づきました リーリー ### の代わりに ### リーリー

私もこの問題を解決しました

P粉807397973
P粉807397973

全員に返信(1)
P粉138871485
  1. これはオブジェクトの配列でなければなりません (配列ではなく Collection であっても)、

new StringJoiner(", ", "{", "}")new StringJoiner(", ", "[", "]")# p>

    フォームの子をターゲットにする必要があります

ユーザー名: $('input[name=username]').val()ユーザー名: $(this).find('input[name=username]') 。 val() 以上ユーザー名: $(this).find('[name=username]').val() など

  1. Department

'input[名前=部門]''select[名前=部門]' または '[名前=部門]'

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート