목표: 코드 분리를 위한 사전 설명 기업형으로 만들 경우 업무를 분담해서 프로그램을 만들게 된다. 그러한 모델에 대해서 자세히 알아본다. 서블릿으로도 충분히 프로그램을 만들 수 있다. 그리고 Controller(servlet)와 View(문서 출력 jsp)로 나누어서 만들 수도 있다. Controller가 DBMS에 접속해서 쿼리를 만들고 사용자 입출력, 업무처리를 모두 했다. 하지만 업무가 커지게 되면 입출력을 담당하는 Servlet에서 업무 서비스를 또 분리하는 것이 바람직하다. 보통은 경험이 적은 사람은 servlet에서는 사용자 입출력을 관리하고 경험이 조금 더 많은 사람이 업무 서비스를 관리한다. 왜냐하면 servlet에서는 입출력을 실수를 하더라도 입출력 문제이지만, 만약 업무 서비스에서 예를..
목표: EL에서 functions를 이용한다 functions는 EL문 내에서 사용이 가능하다. 예) ${fn:toUpperCase(fileName) } functions에도 여려가지 함수가 있고, 함수를 직접 만들수도 있다. 하지만 함수를 직접 만들어서 사용할 정도라면 다시한번 지금 작성중인 코드를 살펴볼 필요가 있다. 만약 문자를 대문자로 변경하고 싶다면, 데이터베이스내의 대문자를 변경해야하는가? X , 절대로 데이터베이스 내의 문자를 변경해서는 안된다. 모든 자료들이 영향을 받게 된다. 그러때는 functions와 같은 함수로 출력에만 대문자로 변경해주면 된다. 코드: - detail.jsp functions를 사용하기 위한 라이브러리 추가 ${fn:toUpperCase(fileName) } EL문..
목표: format태그로 숫자 형식을 변경한다 조회수에 숫자 형식을 변경한다 형식을 지정하는 여러 가지 옵션들이 있지만 태그 라이브러리만 추가해주어도 기본으로 세 자리씩 끊어준다. 옵션 정리 잘된 곳 https://www.javatpoint.com/jstl-fmt-formatnumber-tag JSTL fmt:formatnumber Tag - javatpoint JSTL fmt:formatnumber Tag for beginners and professionals with examples on JSTL core tags, function tags, formatting tags, sql tags and miscellaneous tags. www.javatpoint.com 코드: - detail.jsp 다른..
목표: format태그를 이용해서 날짜 형식을 변경한다 지금까지는 JSP가 알아서 날짜 형식을 만들어서 출력해주었다. 하지만 필요에 따라 날짜 형식을 변경해야 한다. list.jsp => 간단한 날짜 형식 detail.jsp => 자세한 날짜 형식 사용방법: format을 위한 태그 라이브러리 추가 라이브러리를 이용해서 날짜 형식 작성 fmt:formatDate pattern="yyyy-MM-dd" value="${n.regdate}" fmt:formatDate 선택 pattern옵션: yyyy 연도, MM 월, dd 일, hh 시간, mm 분, ss 초 - y 및 M, d 등 개수를 조절해서 사용 가능 - 중간에 "-" 외에도 사용하고 싶은 단어나 문자 삽입 가능 - M(월)은 대문자, m(분)은 소문..
목표: 첨부파일 목록을 출력한다. Token이란? 내가 원하는 기준으로 잘랐을 때 각각의 단위 forTokens 옵션: delims="," -> , 단위로 잘라라 items="${n.files}" -> ${n.files} 문장을 가져와서 잘라라 var="fileName" -> 변수명을 설정 varStatus="st" -> 상태 변수를 설정 코드: 첨부파일 ${fileName} / c:if> 첨부파일 결과 텍스트를 좌측, 10뛰어서 출력 forTokens를 이용해서 상태변수 st설정, items를 돌면서 delims로 ,를 기준으로 나눈 후 var로 변수 저장 ${fileName} / c:if> 각 파일명마다 하이퍼링크 설정 if문을 통해 마지막에는 / 가 붙지 않도록 한다. 결과: 언더바가 뜨며 하이퍼링..
목표: if문을 사용해 pager의 이전과 다음 번호를 구현한다. 다음 페이지를 구현하기 위해서는 몇 페이지가 마지막 페이지인지를 알아야 한다. 이후 if문을 통해서 페이지가 없을 경우, 페이지가 있을 경우를 출력한다. 코드: 이전 이전 ${startNum+i} 다음 다음 다음 페이지 구현 코드 임의로 lastNum을 23으로 지정 다음 다음 if문을 통해서 startNum + 5 다음 페이지가 없다는 알림을 위한 버튼 출력 예) startNum = 1, lastNum=23 ☞ 6 < 23 ▷ 다음페이지 출력 startNum = 5, lastNum=23 ☞ 25 < 23 ▷ 다음페이지가 없다는 알림 이전..
목표: forEach와 set을 이용해서 pager를 구현한다. pager란? page를 선택할 때 출력되는 숫자 ${1+i} forEach를 통해서 index값 0부터 4까지 총 5번을 돌면서 그 값은 i에 전달해준다. 문제점 다른 1~5가 아닌 다른 숫자를 선택 선택했을 때 출력되는 숫자가 변경되어야 한다. 해결방법 예시) 3페이지를 선택하면 1 2 3 4 5 출력 17페이지를 선택하면 16 17 18 19 20 출력 19페이지를 선택하면 16 17 18 19 20 출력 -> 여기서 어떤 페이지를 선택 했을때 첫 번째 출력되는 값(1 2 3 4 5이면 1)을 구하면 나머지 값들도 구할 수 있다. 나머지 연산자 %5를 이용해서 페이지가 3일 때 나머지 3이고 첫 번째 출력되는 값과 차이는 식으로 3 -..