본문 바로가기

기록/Web

(41)
[Spring] 페이징 처리 (PagedListHolder) 게시판 형태를 구현 할 때 페이징 처리를 사용한다. 스프링에서는 PagedListHolder를 이용하여 처리할 수 있다. - Controller 페이지 내 세션에서 유지할 객체 이름을 @SessionAttribute 어노테이션에 저장한다. - 처음 보여지는 페이지 처음 list객체를 가져와 첫 페이지에 보여준다. PagedListHolder object = new PagedListHolder(getObject()); 전달할 model객체에 object를 넣어주고 뷰로 전달한다. - View 전달한객체.pageList 형태로 객체에 접근한다. 첫 페이지, 마지막 페이지에서 페이지 이동 처리를 jstl을 사용하여 처리해준다.
[Spring] github : rejected - non-fast-forward STS 또는 이클립스에서 Github Push 를 했을 때 나타나는 오류. 메뉴 탭의 Window -> Show View -> Other에서 git repository 창을 연다. Remote -> Configure Fetch 를 클릭한다. Ref mappings가 비어있으면 Add, 그림과 같이 채워져 있으면 Advanced 를 클릭한다. 기존에 있던 항목을 지우고 (Remove), Source ref에서 master 선택 후 Add Spec -> Finish Save and Fetch 클릭, 다시 push 를 하면 동작한다. 2. 에러메시지 중 버전 문제가 있다. 현재 repository의 상태가 github의 master에 대해 최신이 아닌 경우이다. pull을 해서 repository를 updat..
[Spring] Maven Project 생성 Maven Project 생성하는 방법 1. New Project - maven 선택 maven-archetype-webapp을 선택하고 Next Groupid와 ArtifactId 입력 2. maven project 설정 변경 1) Java 버전 변경 - 프로젝트 우클릭 -> properties 클릭 -> Maven -> Project Facets 자바 버전을 1.5 -> 1.8로 변경한다. 관련 설정을 pom.xml 파일에 추가한다. pushTest org.apache.maven.plugins maven-compiler-plugin 3.6.1 1.8 1.8 2) Maven Project 환경 설정 같은 페이지의 Java EE Integration 에 체크한다. 3) index.jsp 오류 -> mav..
[Spring Boot][Error] Invalid bound statement (not found) 호출하는 메소드(interface, dao)와 mapper.xml 파일의 메소드 이름이 일치하지 않는 경우 classpath에 경로가 잘못 설정된 경우 이 외에도 몇가지 원인이 존재하지만 보통 1번의 경우가 제일 많은 것 같다. Controller ~ DAO까지는 이름이 일치하지 않으면 컴파일 에러가 발생하기 때문에, xml상에서 등록이 잘못되어 있을 확률이 높다. 만일 같은데 이 에러가 발생한다면 이름을 지웠다가 다시 작성하면 정상적으로 동작한다.
[Spring] BindingResult.hasErrors() 관련 오류 - BindingResult form을 통해 입력한 입력값에 대한 검증을 해서 에러가 발생하는 지 체크한다. 에러가 있으면 그 경우에 따른 동작을 수행한다. command객체 VO에 @NotBlank, @Min, @Future, @DateTimeFormat 등 어노테이션이 등록되어 있으면 값을 입력받는 여부와 관계없이 검증을 수행한다. 따라서 값을 입력받지 않아도 hasErrors에 걸리기 때문에 확인을 해야한다.
[MyBatis] sql 쿼리 결과 저장 문제사항 ) 쿼리 결과 값 중에 객체 내에 있는 다른 객체의 속성에 저장해야 하는 경우 SELECT saleNo, title, Usertable.name as "user.name", regidDate From Normal, UserTable WHERE Normal.userNo = UserTable.userNo AND saleState = 'OPEN' Usertable.name as "user.name" 과 같이 alias 를 이용하여 설정한다. 결과인 Usertable.name이 Normal객체 내 User객체의 속성인 name에 저장된다.
[Mybatis] 문자열 일부만 포함하는 검색 기능 조건 : 문자열의 일부만 포함하는 검색 기능 구현 ex) 'es', 't', 'st' 로 검색 했을 때 결과에 'test'가 나와야 한다. 예제 코드에서는 title 컬럼의 값을 검색한다. SELECT saleNo, title, userNo From Normal WHERE title LIKE '%' || #{title} || '%' * 참고 * 위 코드는 Oracle 의 경우이고, DBMS마다 방법은 다르다. [MySQL] title like CONCAT('%',#{keyword},'%' [Oracle] title like '%' || #{keyword} || '%' [MSSQL] title like '%' + #{keyword} + '%' 출처: https://fruitdev.tistory.com/60..
JAVA) java date -> sql date 데이터베이스에 날짜를 저장하기 위해 date객체를 변환해야 할 때가 있다. java.util.Date utilDate = new java.util.Date(); //현재 날짜(자바 객체) java.sql.Date sqlDate = new java.sqlDate(utilDate.getTime(); //sql date객체로 변환

LIST