웹 & 프레임워크 168

JQuery 자동완성

완벽한 자동완성 플러그인은 별로 찾아보지 못했지만 꿩대신 닭이라고 일단 시도를 해보자 Help -> Eclipse Marketplace -> JSDT jquery 검색-> 프로젝트 오른쪽 클릭 -> Properties -> JavaScript -> Include Path-> Add JavaScript library -> jQuery Library 추가 가끔은 라이브러리가 안나타나는 경우도 있고, 이걸깐다고 해서 자바처럼 자동완성의 진수는 느낄수 없다.좋은 플러그인이 있으면 당장 알려주길 바랍니다

Jquery의 비동기통신 방식

Jquery의 비동기통신방식은 사실 XMLHttpRequest등의 객체를 이용하는 것이다. '4'가 뜨면 제대로 응답이 완료되었다고 보면 된다.물론 JQuery가 아닌 다른 방법으로 복잡하게 구현할수 있겠지만, Jquery의 함수를 이용하면 xml방식이든, json방식이든 쉽게 꺼내쓸수 있다. $.get("main.ryk" {"userId" : "${user.userId}" }, function(jsonObj){console.log("성공하면출력됩니다"}, JSON).error(); 만약, 콘솔로그나 이클립스 콘솔에서 아무것도 반응하지 않는다면, json의 형식이 잘못되었거나 null밖에 가지고 있지 않아서 함수가 제대로 실행되지 않는것이다. 이러한 경우를 대비해 .error를 통해 메시지등을 띄울수 있..

스프링에서 컨트롤러(Controller)와 Request-Mapping 이용방법

스프링을 이용하면 컨트롤러에서 뭘 받아서 전달하고 넣고 빼고 할필요없이 지가 다 해준다. 게다가 여러가지 방법을 지원해준다. (오히려 더 헷갈리는 이유가 되기도 한다.) 대표적인 방법 세가지를 소개한다. 1안 ) Model객체를 받아 거기다가 세팅을 하고, View를 String 값으로 리턴해버리는 간단한 방법이 되겠다 @RequestMapping("/user_write.do") public String register(User user, Model model){ service.create(user); model.addAttribute("userList", service.findUserList()); return "/user_list.jsp"; } 2안 ) 리턴값을 스트링으로 보내야하는 View의 주소값..

RowMapper대신 BeanPropertyRowMapper를 써서 쉽게 jdbc템플릿 쓰기

String SELECT_DATA = "SELECT data_id as id, data_name as name, data_age as age, data_winnercount as winnercount FROM data"; 이렇게 별칭을 주면, 굳이 rowMapper클래스를 안만들고 쓸수있다 public List selectDataList() { return jdbcTemplate.query(MappedSQL.SELECT_DATA, newBeanPropertyRowMapper(Data.class)); } Database SQL자체에서 이름이 객체와 테이블과 괴리가 있다면 저렇게 별칭을 줘서, Data가 가지고 있는 멤 버변수랑 이름을 같게 만들어주면 굿이다

JSON과 XML을 이용한 비동기통신

Spring framework를 이용하면 json과 xml을 이용해 이전에 해왔던것처럼 쉽게 비동기통신을 할수있다. 기존의 방식은 빈 깡통을 하나 만들어주고 거기다 서블릿에서 포워딩했고, jQuery의 getJSON등의 함수를 통해 불러왔다면, jQuery쪽의 함수는 기존의 방식 그대로 유지하면서도, 굳이 JSON이나 XML빈깡통을 만들지 않고 바로 스프링이 보내버리게 할수 있는것이다. 일단 리턴타입을 해쉬맵이나 리스트 아니면 객체타입으로 반환할수 있는데, 그 깊이가 차이가 날수있다. (여러개의 데이터는 list타입으로 리턴타입을 선언해주면 될것이다.) 다음은 JSON타입을 반환하는 예제이다. 서블릿에서 깡통 JSON.jsp등으로 포워딩하는게 아니라 바로 보내버리고 있다. //jackson-mapper기..

트랜잭션 (transaction) 설정

스프링에서는 트랜잭션이 AOP기반으로 작동한다. 트랜잭션 역시 두가지 타입으로 작동할수 있다. xml과 애노테이션 방식이다. 1) 공통코드 공통적으로 transactionManager를 만들어준다. 2-1) 에노테이션 방식부터 보면 Propagation 에뉴머레이션 타입에서 가져오는게 특이한점이라고 할수있다. 밑에 에노테이션은, 트랜잭션을 적용할 ServiceImpl들한테 붙여주면 된다고 하겠다. @Transactional(propagation=Propagation.SUPPORTS, readOnly=true) @Transactional(propagation=Propagation.REQUIRED) 2-2) xml 방식을 살펴보면 (메서드 닫히는 태그가 이상한데 있는건 css버그다. 니 센스로 알아서 달아준다)