JSP에서 onclick의 return false
: 기본 속성 무시 + exit의 의미
ex) <a href="http://www.naver.com" onclick="gogosing(); return false;">네이버 바로가기</a>
위의 상황인 경우 원래 실행순서는 onclick 후 href로 이동되야하지만 뒤에 return false를 붙이면 기존에 있던 기능들이 사라진다. 즉, 원래 가지고 있던 href 로 이동하는 기본 속성을 무시하게 된다.
참고
1
2
3
4
5
6
|
function goDel() {
if ($("#deltYn").val() == "N") {
alert("권한이 없습니다. 관리자에게 문의해 주세요.");
return;
}
}
Colored by Color Scripter
|
여기서 return은 exit 하는 역할로 쓰인다.
오라클 NVL / NVL2
▶ NVL : 해당 컬럼의 값이 null 값인 경우, 특정값으로 출력
- NVL("값", "특정값")
▶ NVL2 : null값이 아닌 경우 A값, null인 경우 B값 출력
- NVL2("값", "A", "B")
오라클 WHERE 1=1
: 무조건 참인 조건을 뜻한다
: 무조건 참인 조건을 쓰고 그 뒤에 붙여주기 위해서 사용한다. (= 동적으로 이용하기 위해)
: mybatis에서 <where> 태그를 쓰는 것과 같다.
1
2
3
4
5
|
SELECT * FROM B
WHERE 1=1
<if test='tempcondition !=null and !"".equals(tempcondition)'>
AND SUBSTR(TEST,1,4) = #{param1}
</if>
Colored by Color Scripter
|
주의할 점은 예외처리(null값이나 '' 등)를 꼭 확인해야한다! WHERE문에 무조건 참인 경우가 초기값으로 잡혀있기 때문에 DELETE, UPDATE에서 의도치 않은 결과가 나올 수 있기 때문이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<select id="findActiveBlogLike"
resultType="Blog">
SELECT * FROM BLOG
<where>
<if test="state != null">
state = #{state}
</if>
<if test="title != null">
AND title like #{title}
</if>
</where>
</select>
Colored by Color Scripter
|
mybatis(마이바티스)에서는 WHERE 1=1 대신 <where>를 쓰는 경우다.
단순히 where을 추가해주는 역할로 "AND”나 “OR”로 시작한다면 그 “AND”나 “OR”를 지워버린다.
즉, WHERE 1=1을 굳이 안 써줘도 상황(조건)에 따라 SELECT * FROM A; 가 되기도 하고
SELECT * FROM A WHERE B =1; 또는 SELECT * FROM A WHERE B=1 AND C=2; 등으로 동적으로 처리가 가능해진다
참고
Custom tag(커스텀 태그 라이브러리)
: Custom Tag Library Descriptor
: 업무 중에 자주 반복되는 작업들을 처리하기 위해 공통으로 구현해놓은 Util Class 등이 있다. 이를 Jsp에서 사용하기
위해 커스텀 태그라이브러리(Custom Tag Library Descriptor) 이용한다.
: 다른 controller에 작성된 조회 service를 뷰단에서 사용하는 것으로 결국은 DB에 접근하는 것이라 남용하면 성능상 안좋
을 것 같다.
1
2
3
4
5
6
7
8
|
/* 공통코드 중 원하는 코드 목록 조회 */
String cmCdGrpId = "SEARCH_DATE_TYPE_CD";
List<CodeVO> code1 = systemService.selectCodeList(cmCdGrpId);
model.addAttribute("code1", code1);
return "/send/result";
}
Colored by Color Scripter
|
mybatis의 mapper 중 공통으로 사용되는 VO를 뽑아 model.addAttribute 해주는 모습으로 원하는 조회 쿼리와 비교를 위해서 사용해야한다. 커스텀 태그를 사용하면 controller단에서 해당 코드를 안 써도된다.
1. WEB-INF > tlds > abcd.tld 파일을 생성
2. 이용할 메소드의 경우 Static으로 구현이 되어 있어야 한다. (public static ~~~)
그래야 Jsp 단에서 인스턴스 생성 없이 클래스 메소드로 사용할 수 있기 때문이다.
(만약 jsp 단에서 해당 태그를 반복해서 쓸 일이 있다면 차라리 Controller에서 추가해서 넘겨주던가 쿼리문에서 같이 가져오는게 낫지않을까..)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
<?xml version="1.0" encoding="UTF-8" ?>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<description>codeUtil function library</description> // 태그 라이브러리 파일 설명
<display-name>codeUtil function</display-name> // 태그 라이브러리 파일 이름
<tlib-version>1.1</tlib-version>
<short-name>codeUtil</short-name> // jsp에서 사용될 이름 (ex. codeUtil:xxxx)
<function>
<description>코드 리스트 조회</description>
<name>CodeList</name> // 함수 이름
<function-signature>java.util.List getCmCodeList(java.lang.String)</function-signature> // 함수 선언(리턴타입, 함수명(파라미터) 순서로 작성
<example> // 실제 사용방법 설명
${codeUtil:getCmCodeList(cmCdGrpId)}
</example>
</function>
<function> ... </function> // 더 추가 하고 싶으면 위와 동일한 형식으로 작성
</taglib>
Colored by Color Scripter
|
참고
'소소한 지식모음' 카테고리의 다른 글
구글 지도 API 이용중 이슈 : grey screen (0) | 2019.12.02 |
---|---|
datepicker 월별 선택으로 바꾸기 (0) | 2019.12.02 |
[생활코딩] AJAX (0) | 2019.06.02 |
[펌] SiteMesh 이용 (0) | 2019.06.02 |
회사다니면서 새로 알게된 잡지식_02 (0) | 2019.06.02 |
댓글