springmvc 주석 상세 설명

6225 단어
애 노 테 이 션 이 유행 하면 서 일부 주류 프레임 워 크 는 애 노 테 이 션 에 대한 지원 을 넣 었 다.Annotation 을 사용 하면 많은 설정 작업 을 간소화 하고 프로그램 개발 의 효율 을 어느 정도 높 일 수 있 습 니 다.본 고 는 Spring 2.5 에 추 가 된 Sping MVC 주해 기능 을 XML 기반 의 Spring MVC 설정 을 주해 설정 으로 대체 하 는 방법 을 소개 한다.struts 를 버 리 고 spring mvc 프레임 워 크 로 몇 가지 항목 을 만 들 었 는데 느낌 이 좋 고 주석 방식 을 사용 하여 많은 설정 파일 을 절약 할 수 있 습 니 다.본 고 는 주로 주해 방식 으로 설 정 된 spring mvc 를 소개 한다.
@Controller
@ Controller 는 bean 을 spring 컨 텍스트 에 등록 하 는 것 을 책임 집 니 다. bean 의 ID 는 기본적으로 클래스 이름 의 이니셜 소문 자로 지정 할 수 있 습 니 다. 다음 과 같 습 니 다.
//   : 
@Controller 
public class TestController {} 

//   :            
@Controller("tmpController") 
public class TestController {} 

@RequestMapping
  • @ RequestMapping 은 방문 한 URL 을 정의 합 니 다. 전체 클래스 에 @ RequestMapping 을 정의 하거나 모든 방법 에 하 나 를 지정 할 수 있 습 니 다.@ RequestMapping 을 클래스 단계 에 두 면 방법 단계 의 @ RequestMapping 주석 과 협동 하여 선택 범 위 를 축소 하 는 효 과 를 얻 을 수 있 습 니 다.예 를 들 어
  • @RequestMapping("/test") 
    public class TestController {} 
    

    이 클래스 의 모든 접근 경 로 는 / test 아래 에 있 습 니 다.
  • @ RequestMapping 을 전체 클래스 에 사용 하 는 것 은 필수 가 아 닙 니 다. 설정 이 없 으 면 모든 방법의 접근 경로 설정 은 완전히 독립 되 고 관련 이 없습니다.
  • 완전한 매개 변 수 는: @ RequestMapping (value = ", method = {", ","}, headers = {}, params = {","}) 입 니 다. 각 매개 변 수 는 다음 과 같 습 니 다. value: String [] 방문 주소 method 설정: RequestMethod [] 방문 방식, 문자 배열 을 설정 하고 RequestMethod 류 를 보십시오. GET, HEAD, POST, PUT, DELETE, OPTIONS, TRACE, 상용 RequestMethod. GET,RequestMethod. POST headers: String [] headers 일반 결합 method = RequestMethod. POST 사용 매개 변수: String [] 접근 매개 변수 설정, 문자 배열 예: userId = id
  • value 의 설정 은 모드 변 수 를 사용 할 수 있 습 니 다. 예 를 들 어 @ RequestMapping (value = "/ owners / {owner Id}", method = RequestMethod. GET) 은 @ PathVariable 에 대해 자세히 설명 합 니 다.
  • @ RequestMapping params 의 추가 설명 은 매개 변수 조건 을 설정 하여 방문 주 소 를 제한 할 수 있 습 니 다. 예 를 들 어 params = "my Param = my Value" 표현 식 입 니 다. 방문 주소 에 있 는 매개 변 수 는 해당 값 인 "my Param = my Value" 만 포함 되 어야 일치 할 수 있 습 니 다. "my Param" 과 같은 표현 식 도 지원 합 니 다. 현재 요청 한 주 소 는 이 매개 변수 가 있어 야 합 니 다.(매개 변수의 값 은 임 의 일 수 있 습 니 다), "! my Param" 과 같은 표현 식 은 현재 요청 한 주소 에 구체 적 으로 지정 한 매개 변수 인 "my Param" 을 포함 할 수 없 음 을 나타 냅 니 다.
  • 주의해 야 할 것 이 있 습 니 다. 방문 주 소 를 'do, html' 과 같은 것 으로 정의 하면 방법 급 의 @ RequestMapping 에서 value 값 을 더 이상 정의 할 수 없습니다. 그렇지 않 으 면 오류 가 발생 할 수 있 습 니 다. 예 를 들 어
  • @RequestMapping("/bbs.do")  
    public class BbsController {  
        @RequestMapping(params = "method=getList")  
        public String getList() {  
         return "list";  
        }  
    @RequestMapping(value= "/spList")  
    public String getSpecialList() {  
         return "splist";  
        }  
    } 
    

    예 를 들 어: / bbs. do? method = getList 는 방법 getList () 에 접근 할 수 있 고, / bbs. do / spList 에 접근 하면 오류 가 발생 합 니 다.
    @PathVariable
  • @ PathVariable 방법 에 사용 되 는 매개 변 수 는 주소 URL 에 연 결 된 템 플 릿 변 수 를 나타 낸다.
  • @RequestMapping(value="/owners/{ownerId}", method=RequestMethod.GET)  
    public String findOwner( , Model model) {  
      Owner owner = ownerService.findOwner(ownerId);    
      model.addAttribute("owner", owner);    
      return "displayOwner";  
    }  
    
  • @ PathVariable 은 주소 표시 줄 에 {xxx} 모드 변 수 를 사용 할 때 사 용 됩 니 다. @ RequestMapping 에서 "/ {owner Id}" 와 유사 한 변 수 를 정의 하지 않 으 면 방법 에서 @ PathVariable 을 사용 하면 오류 가 발생 합 니 다.
  • @ModelAttribute
  • 방법 매개 변수 에 적용 되 며, 매개 변 수 는 페이지 에서 직접 얻 을 수 있 으 며, request. setAttribute (,)
  • 에 해당 합 니 다.
  • 방법 에 적용 하여 반환 값 을 가 진 모든 방법 을 @ ModelAttribute 에 표시 하여 반환 값 을 모델 대상 의 속성 목록 에 들 어가 게 합 니 다.
  • 방법 매개 변수 에 적용 할 때 @ ModelAttribute ("xx") 는 Object 의 데이터 형식 과 연결 되 어야 합 니 다. 기본 데이터 형식 은 int, String 이 작 동 하지 않 습 니 다
  • .
    @ModelAttribute("items")// populateItems() {  
            List lists = new ArrayList();  
            lists.add("item1");  
            lists.add("item2");  
            return lists;  
    }  
    @RequestMapping(params = "method=listAllBoard")  
    public String listAllBoard(@ModelAttribute("currUser")User user, ModelMap model) {  
            bbtForumService.getAllBoard();  
            //)model.get("items")).size());  
            return "listBoard";  
    }  
    

    ① 에서 @ ModelAttribute 주석 을 사용 하여 populateItem () 방법 은 모든 요청 처리 방법 이 실행 되 기 전에 호출 됩 니 다. Spring MVC 는 이 방법 을 'items' 라 는 이름 으로 숨겨 진 모델 대상 속성 목록 에 되 돌려 줍 니 다. 따라서 ② 곳 에 서 는 ModelMap 을 통 해 items 속성 에 접근 할 수 있 습 니 다. listAllBoard () 를 실행 할 때처리 방법 을 요청 할 때 ② 곳 은 콘 솔 에서 "model. items: 2" 정 보 를 출력 합 니 다. 물론 요청 한 보기에 서 모델 대상 의 items 속성 에 접근 할 수 있 습 니 다.
    @ResponseBody
    이 설명 은 방법 에 직접 놓 을 수 있 습 니 다. 반환 형식 은 HTTP 응답 바이트 로 출력 됩 니 다. (Model 에 배치 되 지 않 고 보기 페이지 이름 으로 차단 되 지 않 습 니 다) ajax 에 사용 할 수 있 습 니 다.
    @RequestParam
    @ RequestParam 은 선택 할 수 있 는 매개 변수 입 니 다. 예 를 들 어 @ RequestParam ("id") 주석 이기 때문에 URL 에 있 는 매개 변수 id 와 연결 합 니 다.URL 요청 매개 변수 에 해당 하 는 인자 가 있어 야 합 니 다. 그렇지 않 으 면 org. spring from work. web. util. Nested ServletException 이상 을 던 져 서 null 을 기본 데이터 형식 으로 변환 할 수 없습니다.
    @ RequestParam 에는 3 개의 설정 이 포함 되 어 있 습 니 다 @ RequestParam (required =, value = ", defaultValue =") required: 매개 변수 가 필요 한 지, boolean 형식, 옵션 이 가능 한 지, 기본 값 은 true value 입 니 다. 전달 하 는 매개 변수 이름, String 형식, 옵션 이 있 으 면 설정 방법 에 대응 하 는 매개 변수 defaultValue: String 형식, 매개 변수 가 전달 되 지 않 았 을 때 기본 값 으로 지정 합 니 다.
    @SessionAttributes
    Spring 은 다음 요청 에 대응 하 는 ModelMap 의 속성 목록 에 접근 할 수 있 도록 ModelMap 의 어떤 속성 을 session 에 저장 해 야 하 는 지 선택 적 으로 지정 할 수 있 습 니 다. 이 기능 은 클래스 정의 에 @ Session Attributes 주 해 를 표시 하여 이 루어 집 니 다. @ Session Attributes 는 클래스 에 만 설명 할 수 있 을 뿐 방법 에 대해 서 는 설명 할 수 없습니다. 예 를 들 어:
    @SessionAttributes("currUser") //  ModelMap      currUser     
    @SessionAttributes({"attr1","attr2"}) 
    @SessionAttributes(types = User.class) 
    @SessionAttributes(types = {User.class,Dept.class}) 
    @SessionAttributes(types = {User.class,Dept.class},value={"attr1","attr2"}) 
    
    
    @CookieValue   cookie   
    @RequestHeader          
    @ControllerAdvice          @ExceptionHandler    
    

    좋은 웹페이지 즐겨찾기