Spring
[Spring] select 태그를 이용해 데이터 삽입시 텍스트 대치
jane.dev
2021. 9. 29. 23:05
반응형
<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>