JSP
jsp) form에서 checkbox 배열로 받아 한 줄로 DB저장.
값을변경
2022. 12. 31. 17:31
form에서 fruit을 배열로 보내기는 끝.
<form>
<input type="checkbox" name="fruit" value="사과">사과
<input type="checkbox" name="fruit" value="배">배
<input type="checkbox" name="fruit" value="감">감
<input type="submit" value="제출">
</form>
배열로 받기 끝.
String[] fruitArr = request.getParameterValues("fruit");
DB로 저장하기 위해 배열을 문자열로 바꿈.
차례대로 newFruitArr에 저장되며 마지막 인덱스 값 뒤에는 ' , ' 가 오지 않는다.
String[] fruitArr = request.getParameterValues("fruit");
String newFruitArr="";
// 1번
for(int i=0; i < fruitArr.length; i++) {
if(fruitArr.length-1 > i ) {
newFruitArr += fruitArr[i] + ",";
}else {
newFruitArr += fruitArr[i];
}
}
// 2번
newFruitArr = String.join(",", fruitArr);
//1번, 2번 같음 ㅋ
DB입력 시 newFruitArr를 저장하면 한 줄로 데이터가 들어감.
마지막 콤마를 안 찍게 하고 싶어서 코드를 이리저리 만져 봄.
머리가 안돌아가니 하나하나 출력 결과물 보면서 써봄.
그리고 String.join(string, Object[])을 찾아봄.
* 디버그 다루는법 공부하기.
이렇게 하면 data 꺼낼 때 다시 배열로 해줘야겠지..
처음엔 checkbox마다 이름을 다르게 주었고, DB column에도 각각 해서 3개 만들어 저장함.
지금은 column을 하나만 써서 해보고 싶어 짐.
정답은 배열을 그냥 한 문자열로 받으면 됨.
꺼낼때 배열로 바꾸지 말고, jstl 'fn:contains'로 꺼내쓰기