최근에 프로젝트의 객체 그룹을 전달 해야하는 문제가 발생했습니다. 과거에는 하나의 객체, 여러 객체 또는 배열 세트가 전달 된 사례 만 발생했습니다. 객체 그룹이 전달되는지 확인하는 것은 드 rare니다. 따라서이 문제에 직면 할 때 약간 까다로워집니다. 나는 이런 식으로 그것을 해결할 수 있다고 생각했다.
@requestmapping ( "save1") public void save1 (plan plan, list <planitem> planitems, httpservletresponse 응답) {// todo more ... addMessage (응답, message_type_success, null, message_success);}그러나 나중에 나는 너무 어리 석고 순진하다는 것을 알았습니다. 이 방법은 매개 변수를 전혀 바인딩 할 수 없습니다. 어떤 사람들은 봄이 스트럿에 비해 성능의 일부를 희생해야한다고 말합니다. 그러나 나는 봄과 스트럿에 대한 연구가 없으며, 단지 그것을 도구로 사용합니다. 그래서 나는 왜 그런지 모르겠습니다. 주제로 돌아 가기까지. 온라인으로 다른 솔루션이 있습니다. 이것이 방법입니다
공개 클래스 개인리스트 {private list <person> 사람; 공개 목록 <person> getperson () {return person; } public void setperson (list <person> person) {this.person = person; }} 컨트롤러에서 :
@requestmapping (value = "xxx", method = requestmethod.post) public void test (personlist person) {// transipate person}} 페이지는 다음과 같이 작성해야합니다.
<form id = "form"action = "test/test.do"method = "post"> <input type = "text"name = "person [0] .username"value = "jobs"/> <input type = "text"name = "person [0] .age"value = "55"/> <br/ "type"name = "person [1]. name = "person [1] .age"value = "21"/> <br/> <입력 유형 = "제출"> <양식>
그러나이 방법을 시도했지만 여전히 작동하지 않았습니다. 내가 너무 멍청한 지 또는 그 이유를 모르겠습니다.
많은 비틀기와 회전 후에 다른 솔루션이 발견되었습니다. 목록 개체의 JSON 문자열을 배경으로 전달하십시오. 배경이 매개 변수를 수신 한 후. 그런 다음 json을 객체로 변환하십시오. 프론트 엔드 코드는 면제되며 백그라운드 코드는 다음과 같습니다.
@RequestMapping ( "Save") public void Save (Plan Plan, String Planitemjson, httpservletResponse 응답) {list <planitem> parsearray = json.parsearray (planitemjson, planitem.class); // addmessage (응답, message_type_success, null, message_success);}그러나 이것에 대한 작은 문제가 있습니다. 즉, JSON 문자열에는 이전 섹션의 키 섹션에 이중 인용문이 자동으로 추가됩니다. 백그라운드에서 디코딩 할 때 이중 인용문은 ""; ""로도 피해야합니다. 이중 따옴표로. 즉, 최종 코드는입니다
@requestmapping ( "저장") public void save (plan plan, string planitemjson, httpservletresponse 응답) {planitemjson = planitemjson.replaceall ( "", "/" "; list <planitem> parsearray = json.parsearray (planitemjson, planitem.class); // wonnate wonto message_type_success, null, message_success);}테스트 후이 방법은 목록 개체 및 목록 객체에 대해서도 작동합니다.
추신 : 프로그램 견고성을 향상시키기 위해 JSON 객체를 탈출 한 후 JSON을 확인할 수 있습니다.
또는 더 폭력적인 방법을 사용하여 JSON이 목록으로 전환 할 때 CATH 작업을 시도하십시오.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.