괴발개발/Spring Framework

DB에 option태그나 value값이 있는 태그의 한글 값 넣는 방법

moonday 2021. 8. 26. 10:59

1. option태그 같은 경우, value속성을 따로 쓰지않으면 입력된 값이 value가 되어서 DB에 직접 넣을 수 있음.

jsp파일에 있는 option태그

<select class="btn btn-outline-secondary rounded-start" name="board_category" id="inputGroupSelect02">
  <option value="0" selected>카테고리</option>
  <option>정보공유</option>
  <option>상담/질문</option>
  <option>사담</option>
  <option>업데이트</option>
  <option>알림</option>
  <option>시험안내</option>
</select>

*카테고리선택안했을때, 모달창띄우기위한 조건때문에 카테고리는 value를 0을 줌

 

 

2. VO파일에서 메서드를 이용해서 한글로 변환시키고 mapper로 값을 이동시키게 하기

2-1. VO의 코드에 아래와 같은 메서드를 추가 

public String getCategoryValue() {
  if(board_category.equals("1")) {
  	return "정보공유";
  }else if(board_category.equals("2")) {
  	return "상담/질문";
  }else if(board_category.equals("3")) {
  	return "사담";
  }else if(board_category.equals("4")) {
  	return "업데이트";
  }else if(board_category.equals("5")) {
  	return "알림";
  }else if(board_category.equals("6")) {
    return "시험안내";
  }
  return null;
}

jsp파일에있는 option태그

<select class="btn btn-outline-secondary rounded-start" name="board_category" id="inputGroupSelect02">
  <option value="0" selected>카테고리</option>
  <option value="1">정보공유</option>
  <option value="2">상담/질문</option>
  <option value="3">사담</option>
  <option value="4">업데이트</option>
  <option value="5">알림</option>
  <option value="6">시험안내</option>
</select>

db에 값을 입력하는 mapper

<insert id="insertBoard" useGeneratedKeys="true" keyProperty="board.board_id" parameterType="kr.중간주소.프젝이름.vo.BoardVO">
    insert into board(board_type, board_title, board_content, board_nickname, board_category)
	values(#{board.board_type}, #{board.board_title}, #{board.board_content}, #{board.board_nickname}, #{board.categoryValue});
</insert>
mapper에서는 VO의 메소드를 호출할 때, jsp와 다름
VO메소드 getCategoryValue() 는 mapper에서 호출할때 #{board.categoryValue} 이렇게 값을 입력해줌.
자동으로 앞에 get들어가고 메소드 첫글자c가 C대문자로 변경된뒤 뒤에 ()가 들어감
=> #{board.getCategoryValue()} 와 같아진다는 말.
board. 이라고 한 이유는 param을 dao에 써놨기때문
jsp에서 VO 메소드를 호출할 때
${board.getCategoryValue()} 라고하면 메소드를 호출 할 수 있으나,
위에서 이미 mapper에 한글로 입력했기때문에 ${board.board_categoary}를 써주면 한글 값 자체가 나와짐.
board.이라고 한 이유는 board 값을 board객체를 통해 이용중

 

3. mapper에서 if문을 사용하여 한글로 변환 후, 값을 직접입력