일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- go 캐릭터
- go 대기그룹
- clean architecture middleware
- go air 환경변수
- gin logger
- 좀비고루틴
- go 패닉
- go 맥
- 골랑 고퍼
- go 맥 air
- 개발자
- air 환경변수
- go middleware
- go air
- go 맥 air 환경변수
- go recover
- go디자인패턴
- gopath 환경변수
- git
- go channel
- go 마스코트
- go 환경변수
- 고루틴 채널
- go panic
- go
- golang gopher
- go clean architecture
- gin middleware
- 신입개발자
- gin recovery
- Today
- Total
뽀미의 개발노트
form 에 적힌 여러 정보를 list로 받아 controller로 한번에 보내기 본문
내가 하고싶은건

이렇게 하나의 폼에 여러 정보를 입력하면 컨트롤러로 넘어가서 한줄 한줄이 각각 DB에 insert 되게 하고 싶은 거였음!
<참고한 블로그>
https://dotheright.tistory.com/226
뷰(form)에 입력한 많은 데이터를 List 타입으로 컨트롤러로 보내는 방법
1. 목표2. 기능 3. 소스코드 1. 목표 1. 개발환경 > Spring Boot 2.1.7, JDK 8 2. 뷰에서 많은 양의 데이터를 컨트롤러로 보내고자 한다. > 리스트 형태로 보낼 수 있다. 2. 기능 1. 리스트 타입으로 보내기 순
dotheright.tistory.com
[Spring] vo 여러개 전달하기. LIST<VO> vo를 list 로 넘기기 / 받기
JSP Form에서 VO가 여러개로, 즉 list로 넘기고 controller에서 받아야 하는 경우 List를 사용하면 됨 1. VO객체 BoardVo 클래스 안에 List를 선언하고 getter와 setter도 만들었음! public class BoardVo { private String boa
mchch.tistory.com
이 두개의 블로그를 참고해서 폼의 여러정보를 보낼수 있게 되었다!!
<Score.vo>
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Score {
private int id;
private int memberId;
private int score;
private int classId;
private int relId;
}
<ScoreList.vo>
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ScoreList {
private List<Score> scorelist;
}
<score.jsp>
<form action="doWriteScoreArticle">
<c:forEach var="member" items="${members }" varStatus="status">
<tbody>
<input type="hidden" name="scorelist[${status.index }].relId" value="${article.id }"/>
<input type="hidden" name="scorelist[${status.index }].classId" value="${article.classId }"/>
<input type="hidden" name="scorelist[${status.index }].memberId" value="${member.id }"/>
<tr id="${status.count }">
<th>
<label>
<input type="checkbox" class="checkbox" />
</label>
</th>
<td>${member.name }</td>
<td><input class="input input-bordered input-success w-full" type="text" name="scorelist[${status.index }].score"/></td>
<td>
<select name="classId" class="select select-success w-full max-w-xs">
<option value="">응시</option>
<option value="">미응시</option>
</select>
</td>
</tr>
</tbody>
</c:forEach>
<button class="btn btn-success mr-2">작성</button>
</form>
<controller>
@RequestMapping("/project/article/doWriteScoreArticle")
@ResponseBody
public String doWriteScoreArticle(ScoreList scorelist) {
List<Score> scoreList = scorelist.getScorelist();
for(Score score : scoreList) {
if(score != null) {
scoreService.insertScore(score.getMemberId(), score.getScore(), score.getClassId(), score.getRelId());
}
}
return Util.jsReplace("성적을 입력했습니다.", "scorelist");
}
난 여기서 저 리스트로 받아온걸 scorelist(내가 클래스로 만든)에 넣고 나서 자꾸 그걸로 list<Score>를 꺼내 쓰려고 해서 안 됐었는데 scorelist는 객체고 그 안에 List<Score>가 있는 거기 때문에 내가 원하는 대로 꺼내쓸 수 없는 거였음!! 그래서 향상된 for문도 안 먹고 scorelist.size()도 안 되고 scorelist.length()도 안 먹었다ㅜㅠ
그래서 scoreList라는 새로운 변수에다가 scorelist 객체에서 scorelist라는 찐 리스트를 꺼내서 담아준 다음에 향상된 for문으로 하나씩 꺼내서 score에 담고 이제 쿼리문 날려서 DB에 score 하나씩 다 insert 해주면 되는 것이다!!!
'Trouble_Shooting' 카테고리의 다른 글
로그인 세션에 저장할때.. (Id로 저장하냐 member 통째로 저장하냐 차이) (0) | 2023.05.26 |
---|---|
자바스크립트에 form 매개변수로 보낼때.. (필수정보 누락 막기) (0) | 2023.05.26 |
다중 셀렉트 박스 만들기 (0) | 2023.05.23 |
로그인 체크할때 loginedMemberId와 loginedMember 차이 - 해결 (2) | 2023.05.16 |
프로젝트 진행시 '과정'을 기록할 방법 (1) | 2023.05.15 |