본문 바로가기

[Spring+Oracle+MyBatis]1. Spring MVC 프로젝트 생성 [Spring+Oracle+Mybatis 게시판 만들기 첫번째 시간] 스프링MVC프로젝트 생성 및 pom.xml 수정 및 필요 라이브러리 추가해서 톰캣서버를 통해 프로젝트를 실행시켜본다. 1. STS에서 Spring MVC Project를 생성해준 후 pom.xml에 버전 수정 및 라이브러리들을 받아준다. 1.8 5.0.7.RELEASE 1.6.10 1.6.6 org.apache.maven.plugins maven-compiler-plugin 3.5.1 1.8 1.8 -Xlint:all true true junit junit 4.12 test org.springframework spring-test ${org.springframework-version} test org.mybatis mybatis 3.4..
javascript 즉시 실행함수 script 코드 작성시 여러 명이 함께 개발을 하다 보면 변수명이 충돌날 수 도 있는등 엉킬 수 있는 가능성이 있다. 또한 global 변수인 경우에 브라우저단에서 접근을 할 수 있기 때문에 보안상 안좋은것도 있다. 따라서 기능을 다 구현하고 나면 로컬변수로 만들어주는게 필요하다. 아래는 현재 전역으로 선언된 memberaddress라는 변수를 개발자도구에서 접근한 것이다. 이를 아래 처럼 함수를 감싸고 실행해주는 방식인 즉시실행함수를 사용하면된다. 이 안에 코드를 포함시킴으로써 로컬변수로 만들수 있어서 변수 충돌도 막고 외부에서의 접근을 막을 수 있다. 감싸고 난 후 memberaddress를 출력해보려 하면 에러가 난다. (외부에서 접근을 막았다.)
동적으로 생성된 태그에 이벤트 걸기(event delegation), 링크 막기 1. ajax통신을 통해 아래 ul태그 안에 li태그를 동적으로 만들어줄것이다.(pagination) 2. 페이지가 최초 로딩될때 readstores.do라는 url로 요청을 하여 위의 ul태그에 동적으로 li태그를 만들어준다. 3. 결고 화면은 아래와 같다. 4. 그리고 동적으로 만들어진 소스코드를 보면 아래와 같은데, 현재는 startPage가 1이기 때문에 이전버튼은 disabled 클래스가 적용해놨다. 근데 disabled 클래스를 적용해놨다고 해서 해당 a태그를 클릭했을때 클릭이 저절로 막혀지는게 아니라 UI측면으로만 반영 된것이다. 따라서 diabled클래스를 가진 a태그가 클릭이 되었을때는 클릭이 안되도록 즉 link타고 가지 않도록 javascript쪽에서 처리를 해주어야 한다. 이는 현재..
jsp파일이 웹브라우저로 응답되는 과정 위와 같이 views폴더밑에 fortune.jsp 페이지를 뒀었다. jsp라는게 java기반인데 그러면 클라이언트로 응답을 하려면 결국 java파일이 컴파일되어서 class파일로 되어야 한다는건데 어떻게 그리고 언제 이런 작업들이 되는걸까? 위의 views폴더에 해당하는 서버쪽의 경로로 찾아가보면 아래 처럼 .jsp파일은 없고 .java파일과 .class파일이 있다.즉, 작성된 fortune.jsp파일은 fortune.java파일로 바뀌어 저장되어있다가 해당 jsp페이지로의 요청이 클라이언트로부터 최초로 들어왔을때, .java파일이 컴파일되어 .class파일이된다. 그리고 이 내용이 클라이언트로 응답되는 것이다.즉, 웹브라우저에서 fortune.do 라는 경로로 요청이 들어왔다고 하면, 비즈니스 로직을 ..
폼 유효성 체크-javascript 정규표현식 이용 - 아이디 유효성 체크 (알파벳+숫자 5~20글자) id 입력란에 keyup이벤트가 발생했을때 id 입력란에 입력된 값을 inputId로 가져온다.알파벳+숫자 5~20글자에 해당하는 자바스크립트 정규식을 이용하여 유효성 여부를 체크한다. 이때 '정규식 표현.test(체크하고자 하는 입력값)' 의 형식을 이용하면 되고 매칭되면 true, 아니면 false를 반환하기 때문에 이 값에 따라 추가적인 로직을 수행하면된다. - 이름 유효성 체크: 한글로만 2~10글자 -전화번호 유효성 검증: 01X - XXXX - XXXX 형식 검증정규표현식을 쓸때 시작(^)과 끝($)을 명시하지 않으면 abcd 010-3433-1234 sjsjsj 이런것도 결과 값이 true가 되어버리기 때문에 꼭 명시해주어야한다.
전자정부프레임워크 jsp, 컨트롤러간 json데이터 ajax통신 -pom.xml -web.xml(확장자 나눌거면 하는데 그냥 .do로 통일시킬거면 할필요 없음 즉 optional)필자는 아래 설정 후 ajax로 서버 url 지정할때 .ajax붙이고 컨트롤러에서도 매핑url을 .ajax로 해서 테스트 해본 후 되는 걸 확인하고, 다시 아래 설정을 없애고 원래 .do로도 되는지 테스트 해본 결과 이상없어서 그냥 .do로 통일시켰다. - dispatcher-servlet.xml컨트롤러의 메소드에서 return "jsonView" 라고 하면 알아서 객체를 json형식으로 파싱하여 ajax통신을 요청한 곳으로 응답하도록 설정하는 부분..(아마도) - main.jsp 부분 : 서버의 listAll.do 로 ajax요청을 한다. - 컨트롤러요청으로 날아온 주소, 위도, 경도 정보..
Bitbucket Eclipse commit, push 사용 - 아래 진행하기전 상황Bitbucket에서 회원가입후 원격저장소 만든다음 로컬에 저장소 만들고, 이클립스에서 프로젝트 share해서 로컬에 프로젝트 폴더 들어간 상태에서, 최초로 commit and push해서 로컬이랑 원격저장소 모두에 소스 코드가 올라가 있는 상황이다. 이 상황에서 코드 수정 후 commit해서 로컬저장소에만 소스를 업데이트 한 상태에서 진행한다. (블로그 보고 이해하고 상태 보면서 추측한 것이기 때문에 확실하지 않은 지식임..) 1. 프로젝트 commit했을때 내 working 디렉토리(jinji_repository) 즉, 로컬저장소에 업데이트 된 것 확인. 2. commit만 한것이지 push한게 아니기 때문에 원격 저장소에는 아직 반영 안된 것을 Bitbucket에서 커밋로그 ..
스프링 게시판 검색처리(동적 SQL) 1. 먼저 검색 처리를 위해서는, 게시물 검색을 하고 페이지가 이동되더라도 검색조건과 관련된 파라미터가 페이지 간 유지되어야 한다. 따라서 현재 페이지 번호(page), 페이지당 보여지는 데이터 수(perPageNum), 검색 옵션(searchType), 검색 키워드(keyword)의 네 가지 정보가 필요하다. 이미 Criteria 클래스에서 page, perPageNum을 관리하고 있기 때문에 이를 상속받아 searchType, keyword를 함께 관리하는 SearchCriteria 클래스를 만든다.(getter & setter, toString() 생략) 2. 그럼 검색처리까지 완료된 게시물 CRUD를 관리할 컨트롤러인 SearchBoardController를 만들고 가장 먼저 리스트 페이지를 띄워..