파일을 업로드 하여 ajax가 success 되면 추가된 결과를 List로 보여준다. 그런데 페이지를 reload 하지 않고 계속 추가하면 리스트가 계속 쌓이게 된다.추가할때마다 리스트를 초기화 시켜야 한다.그럴 때 $("#비워야할 리스트 상위 요소").empty() 를 해준다.나는 리스트의 안에 과 로 리스트를 뿌려주었다. 그래서 과 가 새로 뿌려져야 하므로 tbody를 empty 해주면 된다.tbody에 id값을 부여하고, 그 id값을 $("#") 안에 넣어주면 된다. empty 하는 시점은 리스트를 받아오기 전으로 설정하였다. http://findfun.tistory.com/243
자바스크립트파일 업로드 후 화면 refresh 가 아닌 input[type=file] 안의 text만 초기화 할때 방법input[type=file] 의 value 값을 "" 로 만들어 주면 되는데, IE는 좀 다르게 해야한다. 그래서 브라우저가 ie일때와 아닐때로 구분해서 초기화 해주어야 한다.userAgent 로 브라우저를 확인할 수 있다. userAgent값에는 브라우저를 구분하는 고유의 값이 있다고 한다. http://ooz.co.kr/67 참고 input[type=text] 의 값을 초기화 해주는 방법은 ie든 다른 브라우저든 동일하게 value의 값을 " " 로 만들어 주면 되는것 같다.12345678910var agent = navigator.userAgent.toLowerCase();if (..
자기결합(셀프조인) 같은 테이블 끼리 결합하는 것이다. 한 테이블에서 두개의 컬럼을 조인해서 사용해야 할 때 사용한다.a.group_name에는 부모부서가, b.group_name에는 현재부서가 들어간다.123select a.group_name,b.group_namefrom tb_groups a join tb_groups bon a.group_id = b.p_group_idcs 그런데 그냥 join을 걸면 group_id와 p_group_id가 같지 않은것(?)은 나오지 않는다. 그래서 조인의 조건에 만족되지 않는 행까지도 포함시키는 조인인 OUTER JOIN(외부조인)을 사용한다. RIGHT OUTER JOIN을 사용한 것은 기준이 되는 행이 오른쪽인 b.group_name이기 때문이다.123selec..
데이터를 쌓아서 어떤 상황에서 최근 100건만 남기고 삭제해야 하는 쿼리를 작성해보았다. 먼저 최근 100건만 가져오는 select 쿼리를 작성하였다. reg_dt 는 시간을 저장한 컬럼이다.1234select *from tb_log_actionsorder by reg_dt desc limit 100 cs MIN() 함수는 컬럼값 중 가장 작은 값 하나를 가져오는 함수이다. reg_dt 는 시간이고, 최근 100건만 남기고 삭제해야 하므로 100건중 가장 작은 값이 결과로 나오게 된다.1234select min(reg_dt) from (select reg_dtfrom tb_log_actionsorder by reg_dt desc limit 100) acs 삭제하는 함수는 delete 함수이다. delet..
엑셀 import 기능을 만들면서 첨부파일을 추가했을 때 이 파일을 서버에 저장했다가 읽은 후 파일을 삭제하는 기능을 controller에서 구현하였다. 저장할 디렉토리를 일단 만들어 놓고 그 경로에 첨부된 파일명과 동일하게 파일을 복사했다가 삭제하도록 하였는데, 디렉토리가 있어야 하는 경로에 디렉토리가 있는지 검사하고 없으면 만들어서 그 안에 파일을 복사하도록 수정하였다.excelUploadPath는 config/properties 파일에 지정해 준 경로이다. /home/excelUpload 이렇게 주었다면 excelUpload는 디렉토리 이름이다. destdir을 생성하고 저 디렉토리가 존재하는지 검사한 후 없으면 excelUpload라는 디렉토리를 생성해준다. destdir.mkdirs() 를 하면..
Mapper.java 에서 interface로 xml로 들어갈 쿼리의 이름을 선언해준다는 것을 얼마전에 알게 되었다.select 문을 실행할 때 한개의 값만 가져오는것과 여러개의 값을 가져오는 것 또한 다르다는 것을 알게되었다. Mapper.java 에 email을 가져오는 쿼리의 이름을 interface파일에 선언해주었다.1String selectEmailAddress();cs 가져오는 컬럼이 한개일 때 아래와 같이 select 문을 작성한다.Mapper.xml123 select email from tb_adminsColored by Color Scriptercs 그러나 가져오는 컬럼이 여러개일 때에는 resultMap으로 가져오는 컬럼에 대한 VO의 값(?)을 맞춰주어야 하는것 같다.AdminVO 를..
session 하이재킹이란?http://dokydoky.tistory.com/223페이지 로그인시 로그인 뷰 페이지에서 java의 경우 고유 식별 가능한(?) jsessionid가 발급된다. 그걸 쿠키에 저장시키는데, 이 jsessionid를 복사하여 다른 PC나 웹에 붙여넣으면 로그인 없이 로그인이 된다.그니까 jsessionid만 알면 다른 사용자가 나의 정보를 볼수있고 빼낼 수 있다. 이게 session 하이재킹이라고..그래서 이 session 하이재킹을 막아야 해서 구글을 검색하였다. 아래는 내가 찾은 몇가지 방법이다.1. httponly 쿠키를 사용한다.- 적용함자바스크립트의 쿠키요청에 브라우저가 응답하지 않는다.http://storyj.net/%EC%BF%A0%ED%82%A4cookie/htt..
1. 파라미터가 한개일때 Mapper.java1Integer updateEmailAddress(String emailAddress);cs Mapper.xml123 UPDATE tb_admins SET email=#{_parameter}Colored by Color Scriptercs 2. 파라미터가 한개이상일때Mapper.java1Integer updateEmailAddress(@Param("emailAddress") String emailAddress, @Param("adminId") String adminIdId);cs Mapper.xml123 UPDATE tb_admins SET email=#{emailAddress} WHERE admin_id =#{adminId}Colored by Color Sc..
엑셀 업로드 기능을 구현하면서 엑셀 import시 템플릿을 화면에서 다운받게 하는 기능을 추가하였다. 엑셀 템플릿 파일을 FTP서버에 올려놓았는데 클릭해서 다운받을 때 열기가 안되는 오류가 있었다. 그래서 변경한게 어차피 템플릿은 변하지 않으니까 DB에서 주소 가져오는게 아니라 프로젝트 파일에 넣어서 경로를 그쪽으로 바꿔 주었다.1cs 그런데 오류남 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ휴 오류의연속이다 그래서 왜 그러한가 했더니 servlet에 xlxs, xls 확장자는 포함되지 않아서 servlet-mapping에 정의해줘야 오류나지 않고 사용 가능하다고 한다. servlet에 포함된 확장자(*.do , *.jsp등)이 아닌 확장자를 사용 할 경우 servlet-mapping에 해당 확장자를 정의해줘야 한다! 해당 경..
재귀함수?란 무엇인가! 업로드한 엑셀 데이타에서(끝나지 않는 엑셀..지겹다) 아이디를 타고 타고 올라가 한 행의 데이타의 부모 데이타를 추출해야 하는데, 재귀함수를 이용하면 될것 같다고 하셔서 재귀함수를 찾아보았다. 재귀함수? 학교다닐때 펙토리얼해본게 전부인데ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ하 내가 찾으려는 행(article)에 부모가 있다면 그 부모데이터가 몇행에 있는지 엑셀데이타에서 찾아 함수를 다시 호출한다. count 값을 파라미터로 주지 않는다면 내가 처음 함수안에 들어왔을 때 내가 찾으려는 행의 데이터도 distingushName에 넣을텐데, 내 경우에는 내가 찾으려는 행의 데이터는 말고, 부모 데이터만 가지고 와야 해서 count로 첫행을 구분하였다. 내가 찾으려는 행에 부모가 있다는 저 조건식에서 한..
페이지에서 화면 새로고침이 안되게 하고싶을 때이렇게 함수를 넣어주면 화면 페이지 새로고침이 안된다.1234567891011function noEvent() { // 새로 고침 방지 if (event.keyCode == 116) { alert("새로고침을 할 수 없습니다."); event.keyCode = 2; return false; } else if (event.ctrlKey && (event.keyCode == 78 || event.keyCode == 82)) { return false; } } document.onkeydown = noEvent;cs 그런데 특정상황그러니까 나의 경우에는 업로드 중에는 새로고침이 되면 안된다.그래서 나는 form 안에 hidden 값으로 id가 uploadState인..
아주 간단한 function 나는 엑셀파일만 읽어야 해서 파일 확장자 체크가 필요했다.1234567if (file == "" || file == null) { //파일이 선택되지 않은 경우 return false;} else if (!checkFileType(file)) { //checkFileType 에서 excel 확장자가 아닌경우 return false;}Colored by Color Scriptercs 파일 업로드 form에서 checkFileType 함수를 불러서 확장자를 체크한다. 받아온 filePath에서 " . " 으로 split을 한다. 12345678function checkFileType(filePath) { var fileFormat = filePath.split("."); if (..
Excel 파일 업로드 하면서 ajaxForm Submit을 사용해보았다. 여태 ajax에는 success와 error만 있는줄 알았다.헤헿ㅎ[ㅔㅎ헤 먼저 form을 선언한다.1234567 추가 Colored by Color Scriptercs 파일 업로드 하는 form이기 때문에 enctype을 multipart/form-data로 해주었다. action에는 controller의 RequestMapping 주소와 같게 설정해준다. 버튼을 누르면 onclick 이벤트로 check() 함수로 들어가게 되는데 이 함수 안에 ajaxForm 을 선언하였다. form의 id를 사용하여 ajaxForm 을 부르고 전송전, 전송성공시, 실패시, 완료시 동작을 지정해 주고, submit 으로 전송을 하게 된다. 제이..
지금 내가 하는 일 엑셀파일을 첨부한다. 엑셀파일을 읽어온다. 읽어서 리스트에 담는다. 리스트의 데이터를 AD에 보내고 DB에 보내 추가한다. 이 작업을 진행하는 프로그래스바를 생성해야한다. 파일 업로드 progress bar 검색해보니 많이 나온다. 플러그인이. 그래서 적용해보았다. 그런데 파일 업로드 progress bar여서 나는 첨부파일을 받아오는 순간 프로그래스바가 끝난다. 내가 원하는 progress bar는 파일을 업로드 하는 것 뿐 아니라 추가하는 과정까지 원하는 것. 고민하다가 사용자가 원하는건 엑셀이 추가 되는 과정?을 보고싶어하는 것이므로 리스트에 담긴 데이터를 추가해주면서 그 추가 과정을 progress bar 로 보여주기로 했다. 그래서 제일 먼저 한것은. 1.리스트에 담긴 엑셀 ..
엑셀파일을 업로드 해서 안에 내용을 읽어드리는 기능을 구현하고 있다. 진짜로 너무너무너무너무 어렵다. 구글링 진짜 다했는데 내가 너무 1도몰라서 내가 쓸수있게 이해시켜주는 소스가 없었다. 다들 쉽게하는거 같은데 왜나만어려워? http://madeinjeon.tistory.com/59 1주일동안 뻘짓하다가 진짜 이 소스 아니엇음 큰일날뻔..!! 이소스에도 할말이 많은게 아 cellref 파일이 없어서 버려야하나 cellref를 맘대로 만들어야 하나 개고민했는데 아 어케 하다보니 cellref를 올려놓은 블로그가 있었다. http://souning.tistory.com/archive/20150428 역시 구글은 모든 정답이 나와있다는게 정말 정답. 1. POM.XML 에 poi 라이브러리 추가 1 2 3 4..
로그인 화면에서 id/ password 를 입력할때 아래 checkbox로 아이디, 비밀번호를 저장할수 있게 만들어야 한다. 1. 아이디 체크박스 2. 비밀번호 체크박스 이렇게 있다면, 아무것도 하지 않을 화면에서 아이디 체크박스는 활성화, 비밀번호 체크박스는 비활성화 시켜놓고, 아이디 체크박스가 체크되었을 때 비밀번호 체크박스가 활성화 되도록 하였다.(비밀번호만 저장이 될 수는 없으니까!) JavaScript 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878..
ajax로 java 파일에 배열로 받아와서 split을 해야하는데 여태 보통 split를 "_" 구분자로 했는데 ID값이 he_02 이런식이라 아이디를 출력해야하는데 he = [0] , 02 =[1] 이렇게 나누어졌다.그래서 앞에 값을 "|" 구분자로 두어 아이디값이 나누어지지 않게 하려고 했다.근데왜오류나???????"_"로 할때는 잘만되면서..!!!! Spring 에서 jsp 파일은 그냥 | 를 사용해도 되는데java 에서는 "\\|" 이렇게 사용해야한다고 한다. 정말 감사한분http://androphil.tistory.com/493
잘 모르겠지만(항상 시작은) 프로퍼티 파일을 프로젝트에서 따로 빼놓았다. home/config/properties 이런식으로프로퍼티 파일을 읽어와서 화면(JSP)이나 java 파일에서 쓰고 싶을 때 어케 해야하는지 알아보자Spring에 SP EL 이라는 커스텀 태그가 있는데, 그것이 자동으로 Properties 파일을 읽어서 JSP 파일에서나 JAVA 파일에서나 읽을 수 있다. 고 한다.따로 설정된 프로퍼티 파일을 읽어오려면1. 프로퍼티 파일이 있어야 하고 2. 프로퍼티 파일의 경로를 알려주기 위해서 dispacher-servlet.xml에 properties 파일을 설정해주어야 하고 3. JSP 나 JAVA 파일에서 선언해주어야 한다. properties 파일에 아래와 같이 되어있으면#version -..
- Total
- Today
- Yesterday
- jsp
- input[type=file]초기화
- servlet게시판
- 체크박스
- 게시판페이지설계
- selectbox에 값 매핑
- 자바
- servlet
- 스크립팅 요소
- windows 8.1
- 윈도우8.1
- jsp 기초 개념
- 게시판table설계
- spring
- String[] 파라미터
- 체크박스전체해제
- 자바스크립트
- c 태그
- SQL
- Hyper-V
- foreach 배열
- Split
- 체크박스전체선택
- windows hyper-v
- 제이쿼리
- input[type=text]초기화
- 이클립스DB연결
- 스프링
- Javascript
- java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |