728x90
JSP, Server, Mapper 에서 파라미터 유무 확인하기
🩸이슈 발생
특정 조건일 경우에만 파라미터를 던졌다. 쿼리문에서 파라미터 유무로 if문을 태워보자.
728x90
🩹이슈 해결
1. JS로 파라미터 존재 여부 확인
// 'testdb'라는 파라미터 키가 있는지 확인
const searchParams = new URLSearchParams(location.search);
if (searchParams.has('testdb')) {
comAjax.setUrl("<c:url value='/selectQnaManageList.do?testdb=1' />");
} else {
comAjax.setUrl("<c:url value='/selectQnaManageList.do' />");
}
- URLSearchParams : URL 쿼리 문자열 대상으로 작업하는 메소드. has, append, delete 등이 있다
- location.search : 파라미터 값 가져옴 (key, value 둘 다)
- searchParams.has : 위 메소드 중 하나. 'testdb' 파라미터 값의 존재 여부 (boolean)
2. 서버에서 파라미터 존재 여부 확인
String dbTestMenu = request.getParameter("testdb");
if(dbTestMenu != null) {
List<Map<String,Object>> qnaList = qnaService.selectQnaTestList(commandMap.getMap());
mv.addObject("qnaList", qnaList);
commandMap.put("URL_PARAMETER", dbTestMenu);
}else {
List<Map<String,Object>> qnaList = qnaService.selectQnaList(commandMap.getMap());
mv.addObject("qnaList", qnaList);
}
Map<String,Object> qnaCntMap = qnaService.selectQnaListCount(commandMap.getMap());
- request.getParameter로 파라미터 값 가져오기
- 파라미터 값이 있을 경우 URL_PARAMETER에 파라미터값 넣고 넘기기 (dbTestMenu)
3. Mapper 에서 사용하기
<select id="selectQnaListCount" parameterType="hashmap" resultType="hashmap">
<!-- 쿼리문 생략 -->
<!-- 파라미터가 있을 경우 -->
<if test="URL_PARAMETER != null and URL_PARAMETER != ''">
<!-- WHERE 절 -->
</if>
</select>
- 서버에서 넘긴 URL_PARAMETER 사용하기
300x250
'CODING > 🍃Spring & Spring Boot' 카테고리의 다른 글
[Spring] 검색 기능 구현하기 (0) | 2023.12.07 |
---|---|
[Spring] 스프링 주요 어노테이션 정리 (0) | 2023.11.06 |
[Spring] Lombok.jar 다운 및 설치하기 (0) | 2023.08.23 |
[Spring] Spring 다운 및 환경 설정 (0) | 2023.08.22 |
[Spring] 게시판 이전, 다음 글 구현하기 (0) | 2023.08.12 |