728x90
Spring 3 MVC 기능 중 Controller에
@RequestMapping 어노테이션에 method 속성을 사용하기 위해서는
web.xml 아래 필터를 설정해야 한다.
<filter>
<filter-name>httpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>httpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
UrlRewriteFilter 필터도 사용한다면 UrlRewriteFilter 필터보다 위에 위치해야한다.
간단한 삭제 Controller 코드
@RequestMapping(value = "/admin/board/{id}", method = RequestMethod.DELETE)
public String delete(@PathVariable("id") int id) {
boardService.deleteById(id);
return "redirect:/admin/board";
}
JSP에서는 form에
<form mehod="post">
<input type="hidden" name="_method" value="delete" />
</form>
이런식으로 실제로는 POST 방식으로 요청하지만 _method에 값을 보고 위에서 설정한
HiddenHttpMethodFileter가 자동으로 컨트롤러에 맵핑을 해준다.
아직 DELETE, PUT과 같은 메소드를 브라우져에서 지원하지 않는 브라아져들이 있어서 위처럼 사용한다.
Rails에서도 동일한방식으로 작동한다 ^^
'dev > spring' 카테고리의 다른 글
Spring Framework - Runtime efficiency with String (today and tomorrow) (0) | 2024.06.02 |
---|---|
Ehcache Annotations for Spring (0) | 2010.08.05 |
Maven Build Script (spring + hibernate) (0) | 2009.12.07 |
Don't repeat the DAO!(Hibernate) (0) | 2008.11.27 |
제9회 kSUG 모임 (0) | 2008.10.12 |