본문 바로가기
Spring

[Spring] select 태그를 이용해 데이터 삽입시 텍스트 대치

by jane.dev 2021. 9. 29.
반응형
<select> 태그는 옵션 메뉴를 제공하며
메뉴의 각 옵션은 <option> 태그를 이용해 정의

 

먼저 JSP 파일에서 <select> 태그를 이용해 옵션메뉴를 생성

<form> 태그 내부에 작성해 <input> 태그의 submit 버튼을 누르면 해당 데이터를 처리할 수 있는 url 작성

<form action="데이터를 처리할 url">
  <select name="type" required>
      <option value="" disabled selected>--유형을 선택하세요--</option>
      <option value="firstoption">첫번째 옵션</option>
      <option value="secondoption">두번째 옵션</option>
      <option value="thirdoption">세번째 옵션</option>
      <option value="fourthoption">네번째 옵션</option>
      <option value="etc">기타</option>
  </select>
  <input type="submit" value="등록" />
</form>

<select> 태그에는 required 속성을 작성해 옵션의 항목을 반드시 선택하도록 함

첫 <option> 태그에는 disabled 속성으로 해당 항목을 비활성화, selected 속성으로 해당 옵션이 선택된 상태로 페이지를 로드

 

Controller에서 <form> 태그의 action 속성의 경로로 이동하면 실행되는 로직은 service → mapper 를 순차적으로 호출하는데 

mapper.xml 에서 if 조건문으로 동적 SQL 엘리먼트 사용

<if> 태그는 어떤 값의 상태를 검사해 참일 경우에만 SQL 문을 포함하고자 할 때 사용
조건은 test 속성 내부에 작성

 

<sql> 태그 내부에 작성해 다른 구문에서 사용할 수 있는 변수처럼 저장

<sql id="test">
    <if test="type == 'firstoption'.toString()">'대치하고자하는 텍스트1'</if>
    <if test="type == 'secondoption'.toString()">'대치하고자하는 텍스트2'</if>
    <if test="type == 'thirdoption'.toString()">'대치하고자하는 텍스트3'</if>
    <if test="type == 'fourthoption'.toString()">'대치하고자하는 텍스트4'</if>
    <if test="type == 'etcoption'.toString()">'기타'</if>
</sql>

문자열 비교를 위해 toStirng() 메서드를 호출

 

<insert> 태그 내에서는 <inclued> 태그를 통해 호출

<insert id="mapper.java 메서드명">
    INSERT INTO 테이블명 (num, type, title, content) 
    VALUES (#{num}, <include refid="test"></include>, #{title}, #{content})
</insert>

 

다른 태그에서도 호출해서 사용 가능

<update id="mapper.java 메서드명">
    UPDATE 테이블명 SET 
    type=<include refid="test"></include>, title=#{title}, content=#{content} WHERE num = #{num}
</update>