내 양식의 컬렉션을 JS 이벤트 핸들러와 REST 컨트롤러로 올바르게 전달하려면 어떻게 해야 합니까?
P粉807397973
P粉807397973 2024-01-10 17:25:43
0
1
414

페이지 새로 고침이 필요하지 않은 방식으로 양식을 다시 작성하려고 합니다. 즉, 브라우저가 제출 시 GET/POST 요청을 수행하는 것을 원하지 않습니다. jQuery는 이 문제를 해결하는 데 도움이 될 것입니다. 여기 내 테이블이 있습니다(몇 개가 있습니다):

으아악

이것은 내 JS입니다:

으아악

이것은 내 REST 컨트롤러 핸들러입니다:

으아악

User 엔터티:

으아악

角色항목:

으아악

제출 버튼을 누르면 콘솔에 이 내용이 표시됩니다

으아악

어떻게든 통과해야 할 것 같습니다 Collection 的 JSON 表示,而不仅仅是 String。在我之前的项目中,没有使用 jQuery,String 已使用我的自定义 Formatter 성공적인 역직렬화

으아악

구글에서 찾아보니 Thymeleaf에는 toJson() 메소드가 없는 것 같습니다. 내 말은 나만의 메소드를 작성할 수 있지만 Thymeleaf 템플릿에서 이를 사용하는 방법을 모른다는 뜻입니다. 또한 이는 최적의 솔루션이 아닐 수도 있습니다

이것은 Boot 프로젝트이므로 Jackson 데이터 바인딩 라이브러리가 있습니다

내 양식의 컬렉션을 JS 이벤트 핸들러와 REST 컨트롤러로 올바르게 전달하려면 어떻게 해야 합니까?

StackOverflow에서 제안한 유사한 질문을 여러 개 확인했습니다. 관련성이 없어 보입니다(예: C# 또는 PHP와 같은 다른 프로그래밍 언어가 관련되어 있음)

UPD: 방금 이걸 시도해봤습니다. 불행히도 그것도 작동하지 않았습니다! (같은 오류 메시지)

으아악 으아악

그러나 방법은 예상대로 작동합니다

으아악

UPD2: GPT4가 이것을 추천합니다

으아악

지금 정말 이상해요. 하지만 데이터베이스는 아직 변경되지 않았습니다! 이제 IDE 콘솔에는 오류가 없으며 PUT 요청에 대한 언급도 전혀 없습니다(이전 시도에도 있었습니다)! 또한 브라우저 로그에는 다음 메시지가 있습니다

으아악

무슨 뜻인지 모르겠어요!

UPD3: GPT4는 똑똑합니다. 어쨌든 나보다 똑똑해. 이것은 절대적으로 사실입니다. UPD2에서 작동하지 않는 이유는 다음과 같은 내용을 무시했기 때문입니다.

권한 필드는 문자열이 아닌 개체의 배열으로 전송되어야 합니다.

이는 StringJoiner 접두사와 접미사에 중괄호가 아닌 대괄호를 사용해야 함을 의미합니다.

으아악

저도 이렇게 바꿨어요

으아악

이렇게 (당장 안한 내가 바보였음)

으아악

그리고 - 비올라 - 이제 구매 가능해요!

GPT4도 내가 사용한 걸 눈치챘어요

으아악

대신

으아악

저도 이 문제를 해결했습니다

P粉807397973
P粉807397973

모든 응답(1)
P粉138871485
  1. 객체의 배열이어야 합니다(배열이 아니라 Collection이더라도). 따라서

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

  1. 양식의 어린이를 대상으로 해야 합니다

用户名:$('input[name=username]').val()用户名:$(this).find('input[name=username]')。 val() 或更好用户名:$(this).find('[name=username]').val() 잠깐

  1. department 요소 표현이므로

'input[name=department]''select[name=department]''[name=department]'

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿