내 GSP에 컨트롤러에서 제공된지도로 채워진 많은 텍스트 필드가있는 양식이 있는데 실제 양식이 이보다 훨씬 복잡하기 때문에 이것을 예로 들어 보겠습니다. :제출 된 양식 텍스트 필드가 올바르게 그룹화되지 않았습니다.
예를 들어, 나는 각 사람의 age
, 나는 data
라는 맵에 그들을 그룹화 입력 할 수있는 텍스트 필드의 무리를 채우는 데 users
를 사용하고, 내가 제출 한 후 모든 정보를 처리하고 저장하려면 :
<g:form useToken="true" name='example_form' action='submit'>
<g:each in='${users}' var='user' status='i'>
<g:textField name="data.${user.id}.name" value="${i.name}">
<g:field name="data.${user.id}.age" value="">
</g:each>
<button>Submit</button>
</g:form>
하지만 내에있는 params.data를 인쇄 할 때 85,컨트롤러, 나는 눈치 그뿐만 아니라 내가 만든 data
지도를 얻고, 또한 그 안에 쓰레기의 무리를 얻고있다 :
for(i in params.data){
println "key: ${i.key} value: ${i.value}"
}
출력 : 나는
key: 0.name value: john
key: 0 value: [age: 35, name: john]
key: 1.name value: liz
key: 1 value: [age: 24, name: liz]
key: 2.name value: robert
key: 3.name value: david
key: 0.age value: 35
key: 1.age value: 24
key: 2 value: [age: 44, name: robert]
key: 3 value: [age: 23, name: david]
key: 3.age value: 23
key: 2.age value: 44
을하고 있는가 뭔가 잘못?
예상 출력 :
이key: 0 value: [age: 35, name: john]
key: 1 value: [age: 24, name: liz]
key: 2 value: [age: 44, name: robert]
key: 3 value: [age: 23, name: david]
확장 된 형태와 확장되지 않은 형태 모두에서 데이터'지도 '가 생성 된 것 같습니다. 처리해야 할 것 같습니다. 'for' 루프 안에'if (i.value instanceof Map)'와 같은 것을 추가해보십시오. – nickdos