Spring MVC

A collection of 18 posts
스프링 2.5

스프링 2.5 @MVC 컨트롤러 테스트관련 궁금한거..

@Controller @RequestMapping(“board/*.do”) @SessionAttributes(value=”board”) public class BoardController { @Autowired private BoardService boardService; @Autowired private BoardValidator validator; @RequestMapping public void list(ModelMap model){ model.addAttribute(boardService.getAll()); } @RequestMapping(method=RequestMethod.GET) public void add(ModelMap model){ model.addAttribute(new Board()); } @RequestMapping(method=RequestMethod.POST) public String add(@ModelAttribute(“board”
3 min read
Spring MVC

오랜만에 스프링 MVC 다시 정리

오늘 오후 네 시에 스터디가 있어서 오랜만에 13장을 다시 정리해봤습니다. 그 중 몇 개만 정리해둡니다. MultiActionController 사용 방법은 두 가지 – 상속 – 위임 WebApplicationContext가 관리하는 빈 – 컨트롤러(controller) – 핸들러 맵핑(handler mappings) – 뷰 리졸버(view resolver) – 로케일 리졸버(locale resolver) – 테마 리졸버(theme resolver) – 멀티파트 파일 리졸버(multipart file resolver) – 예외
2 min read
BindingResult

Spring 2.5 @Controller 사용시 BindingResult 주의 할 것.

스프링 레퍼런스에 BindingResult에 대한 언급은 단 한 줄. org.springframework.validation.Errors / org.springframework.validation.BindingResult  validation results for a preceding command/form object (the immediate preceding argument).이게 끝입니다. 한 줄이라고 무시하면 안 됩니다. 진짜 중요한 한 줄입니다. public String update(@ModelAttribute(“model”) Foo model, BindingResult result, Bar bar)
1 min read
CoC

ControllerClassNameHandlerMapping 잘 되네~

@Controller public class MemberController { @Autowired private MemberService memberService; @RequestMapping public ModelAndView list(){ return new ModelAndView(“member/list”) .addObject(“members”, memberService.getAll()); } } 요렇게만 해두면, /member/list.xxx 라는 요청이 오면 알아서(Conversion) 저 메소드가 처리하도록 합니다. ㄴXxx-servlet.xml에는 XML에는 애만 등록해주면 됩니다. 저 한 줄의 XML로 URL 맵핑을 손수 적는 수고를
1 min read
Spring 2.5

Spring 2.5 MVC 요약

토비님 발표를 들으며 요약한 내용입니다. 많은 걸 적을 순 없었습니다. 어차피 PPT가 KSUG 사이트에 올라올테니 그걸 기다려봅니다. @Controller @RequestMapping method level에서 narrowing. value, method, params 파라미터와 리턴타입의 자동인식 리턴값 파라미터 @RequestParam 이름이 다를 경우에만 사용 URL 파라미터 받아오기 @ModelAttribute : 커맨드 객체, 레퍼런스 데이터 @SessionAttribute : 세션폼 SessionStatus.setComplete(); @InitBinder : 커스텀 프로퍼티
1 min read
애노테이션

Annotation-based controller configuration

0. 컴포넌트 스캐너 등록하기 우선, 컴포넌트 스캔 기능을 사용해서 @Controller 애노테이션이 붙어있는 클래스들을 bean으로 인식하도록 해야합니다. 따라서 context:component-scan 엘리먼트로 컨트롤러들이 위치한 패키지를 명시해 줍니다. 1. 컨트롤러 작성하기 완전 POJO로 컨트롤러를 작성할 수 있습니다. 획기적이네요. 일단 컨트롤러로 사용할 클래스는 이제 더이상 아무런 클래스도 상속받지 않아도 됩니다. 정말 그야말로 POJO입니다. 이
5 min read
MultiActionController

MultiactionController

AbstractController를 상속받아서 간단하게 구현하는 Controller들이 많이 있습니다. 그러한 것들 중에는 서로 관련이 있는 컨트롤러들도 있습니다. 예를 들어 검색결과 리스트를 가져오는 컨트롤러, 전체 목록을 가져오는 컨트롤러, 목록에서 한 개의 아이템에 대한 정보를 가져오는 컨트롤러가 있을 수 있습니다. 이러한 것들을 하나의 컨트롤러에서 처리할 수 있습니다. MultiactionController의 장점 – 컨트롤러의 갯수가 줄어듭니다. – 여러 처리를
2 min read
Spring MVC

Vlidator - ValidationUtils 사용하기

Spring에서 Validator를 구현하는 방법은 두 가지가 있습니다. 1. Programmatic 2. Declarative 그 중에서 첫 번째 Programmatic 방법을 사용하여 구현할 때 ValidationUtils를 사용하면 매우 간단하게 구현할 수 있습니다. 인터페이스 중에 인자가 네개인 녀석을 사용하여 defaultMessage를 주면 프로퍼티 파일을 만들지 않아도 메시지를 출력할 수 있습니다. 1. Validator 만들기 public class MemberInfoValidator implements
2 min read
onSubmit()

SimpleFormController's onSubmit()

오버로딩을 사용해서 같은 이름의 메소드가 세 개 있었습니다. 보통은 onSubmit(Object command) 이 녀석만 사용했었는데요. 세션에 객체 하나를 담고 싶어서 아래와 같은 코드가 onSubmit() 메소드 안에 추가 되어야 했습니다. request.getSession().setAttribute(“user”, member);그러나… request 인자가 onSubmit() 메소드에 없는 것입니다. 그래서 이를 어쩌나..했는데 찬욱군이 onSubmit() 메소드가 세 개가
2 min read
SimpleFormController

SimpleFormController 에피소드1

이녀석을 공부하는 어제부터 현재까지 여러 가지 에피소드들이 있었습니다. 발생한 의문들에 자문 자답을 해봅니다. 1. SimpleFormController가 어떻게 흘러가는 건지 이해가 되지 않았습니다. AbstractController는 ModelAndView 객체에 요청을 처리할 view이름과 그 view에서 사용할 객체를 전달해 주었습니다. 그런데 이녀석은 그렇게 처리하기엔 뭔가.. 허전하다고 느껴지거든요. 자신에게 어떤 요청이 들어왔다는 것은 무엇을 입력할 곳을 찾아 왔다는
2 min read
Spring MVC

Web Application Context 작성

참조 : Spring MVC 어플리케이션 개발 <3> Web Application Context 파일 작성 [http://blog.empas.com/ahnyounghoe/read.html?a=13186543] Spring Reference에 Dispatcher와 WebApplicationContex와의 관계를 나타낸 그림이 있어서 퍼왔습니다. 앞에서 addressBook-servlet.xml로 .do로 끝나느 요청을 넘기기로 했고 지금 이 글에서 작성해야할 addressBook-servlet.xml을 예전에는 hanlderMapping이라고 머릿속으로 단순화 시켜서 인식하고 있었는데 그게
4 min read
Controller

Web Layer

Web Layer 이 계층에서 다루는 주요 기능 두가지 – Navigation Logic 담당 – Domain model 과 Service Layer의 중계자 역할 특징 – servlet 으로 간단하게 구현될 수 있다. 이런 servlet은 request 파라미터를 객체로 바꾸고 service 인터페이스의 메소드를 호출한다. – 유저들을 위해서 비즈니스 exception들을 적당한 에러 메시지로 바꿔야 하는 책임도 있다. Spring MVC가 하는 일
1 min read
계층

Layers of Abstractions

Layers of Abstractions Spring MVC 에플리케이션들은 여러 계층으로 나누어져있다. layer is a discrete, othogonal area of concern within an application. 여러 계층들은 에플리케이션의 추상화에 해당하며 인터페이스는 계층들간 상호작용의 규약을 제공한다. 어떤 계층들은 몇몇 다른 Layer들과 상호작용을 하지만 매우 중요한 계층은 모든 계층과 상호작용을 한다. 계층은 개념적인 경계선이고 물리적으로 떨어져 있을
5 min read