스프링 MVC (b)는 개발 상세한 주석 형을 사용

급 프로세서 개발 주석을 기반으로 MVC 주석 스타일의 개발은 XML로 등록하지 않고, 각 프로세서에 대해 정의.

그냥 클래스와 메소드를 주석으로 코드에서 등록을 완료합니다.

정의 프로세서

@Controller : 현재 클래스 프로세서

@RequestMapping : 임의의 프로세서에있어서, 메소드 명에 대한 현재의 방법 및 상기 요청에 응답하는 처리된다.

@Controller 
 공용  클래스 MyController에 { 
 
  @RequestMapping (값 = " /hello.do " )
   공공 의 ModelAndView doControl (HttpServletRequest의 요청 
                  HttpServletResponse를 응답) { 
    의 ModelAndView MV = 의 ModelAndView (); 
    mv.addObject ( " 메시지 " , " 执行方法" ); 
    mv.setViewName ( " 환영, 닐! " );
    반환 MV를; 
  } 
 
}

RequestMapping 요청은, 예를 들어 제한 될 수있다

다음과 같이 코드 코드는 다음과 같습니다
@RequestMapping (값 = " /hello.do " , 있는 params = { " 이름 = 닐 " , " ! 나이 " }, 방법 = RequestMethod.POST)

방법 = RequestMethod.POST 정의 타입 POST를 제출

PARAMS = { "이름 = 닐", "! 나이"} 매개 변수를 소지해야합니다 요청에 정의 된 이름, 값 닐, 매개 변수는 나이를 수행 할 수없는

요청 매개 변수를 수락

파라미터 이름 및 파라미터 이름 요청 프로세서 일관된 방법, 그것을 직접 획득 될 수있는 경우.

(값 = @RequestMapping " /hello.do " )
   공공 의 ModelAndView doControll (문자열 이름, INT의 나이) { 
    시스템. 밖으로 .println ( " 이름 : " + 이름 + " , 나이 : " + 세); 
    의 ModelAndView MV = 의 ModelAndView ();
    반환 MV를; 
  }

매개 변수 이름이 일치하지 않는 경우, @RequestParam에 의해 위치해야합니다.

세 가지 속성이 있습니다 @RequestParam

  1. 이름 / 값 : 파라미터 지정 요청의 이름.
  2. 필수 : 매개 변수를해야하는지 여부가 false 인 경우, 그것은 가능한 매개 변수가 없음을 의미합니다.
  3. DEFAULTVALUE : 요청 매개 변수, 현재 매개 변수의 기본값을 수행하지 않는 경우.

 

다음과 같이 코드 코드는 다음과 같습니다
doControll (@RequestParam (이름 = " 사용자 이름 " ) 문자열 이름, @RequestParam (이름 = " userage " ) INT의 나이)

경로 변수 @PathVariable

프로세서의 처리 파라미터는, 가변 될 수있는 URI로부터 상기 요청에 운반되는 매개 변수, 즉 경로 변수로부터 유도 될 수있다.

파라미터 값을 수신하고, 변수의 이름과 경로 이름이 일치하지 않는 경우 상기 정상 파라미터로서, 상기 가변 파라미터의 경로명 것을 주목하여야한다.

아래와 같이 사용자 이름 노트 이름, 나이, 연령.

(값 = @RequestMapping " /{username}/{age}/hello.do " )
   공공 의 ModelAndView doControll (@PathVariable ( " 이름 " ) 문자열 이름, @RequestParam의 INT의 나이) { 
    시스템. 밖으로 .println ( " 이름 : " + 이름 + " , 나이 : " + 세); 
    의 ModelAndView MV = 의 ModelAndView ();
    반환 MV를; 
  }

방법은 값 프로세서를 반환

프로세서를 사용 @Controller 주석, 상기 방법은 일반적으로 다음 네되어 사용되는 값을 반환

  1. 의 ModelAndView
  2. 객체, 사용자 정의 유형의 객체

1,의 ModelAndView를 반환

완료 처리기 메서드 후에는 다른 리소스로 이동하는 것이 필요하며, 자원 점프 사이에 데이터를 전송할 필요, ModelAndView를 반환 할 수 있습니다.

공공 의 ModelAndView doControll () { 
    의 ModelAndView의 ModelAndView = 의 ModelAndView ();
    // 传递的数据 
    modelAndView.addObject ( " 이름 " , " " ); 
    modelAndView.setViewName ( " /user.do " );
    반환 ModelAndView 활성화; 
  }

2, 무효 반환

요청을 처리 한 후, 더 점프는 무효 프로세서 복귀 예컨대 Ajax를 비동기 요청 - 응답 넣을 수 없다.

원하는 점프는 앞으로 또는 sendRedirect을 ServletAPI 운영에 의해 수행 될 수있다합니다.

3, 반환 객체

객체 프로세서는이 시간 표시 용 페이지 데이터의 논리도로서 나타나지만 직접하지 객체를 반환 할 수있다.

객체는 객체를 돌려 주석 @ResponseBody, 무게로 변환 된 JSON 응답 데이터가 필요합니다.

@RequestMapping (값 = " /hello.do " ) 
@ResponseBody 
공공 의 ModelAndView doControll는 () {
    반환  새로운 학생 ( " " , 998 ); 
  }

프런트 엔드 데이터 수집

FR.ajax ({ 
    URL : " hello.do " , 
    완전한 : 기능 (데이터) { 
      경고 (data.name + "  " + data.age); 
    } 
  })

 마찬가지로, 등등 컬렉션 목록,지도를 반환 할 수 있습니다.

@RequestMapping (값 = " /hello.do " ) 
  @ResponseBody 
  공공 의 ModelAndView doControll () { 
    목록 <학생> 목록 = 새로운 ArrayList를 <학생> (); 
    에는 list.add ( 새로운 학생 ( " " , 11 )); 
    에는 list.add ( 새로운 학생 ( " B " , 22 )); 
    에는 list.add ( 새로운 학생 ( " C " , 33 ));
    반환 목록; 
  }

 

프런트 엔드 데이터 수집

FR.ajax ({ 
   URL : " hello.do " , 
   완전한 : 기능 (데이터) { 
     $ (데이터) .each (기능 (인덱스)) { 
       경고 (데이터 [인덱스] .name을 + 데이터 [인덱스] .age); 
     } 
   } 
 })

 

4, 문자열을 반환

세 가지 시나리오가 있습니다 문자열을 반환합니다 :

  1. 논리적 뷰 이름
  2. 리디렉션 리디렉션
  3. 앞으로 전달

논리적 뷰 이름

프로세서는 문자열이 물리적 뷰에 논리적 뷰 이름에 의해 뷰 파서 주소를 지정할 수 있습니다 반환합니다.

마지막으로 실제 액세스 경로 = "접두사"논리적 뷰 + 이름 + "접미사"

접두사와 접미사를 지정하지 않으면 같은 물리적 뷰 이름에 직접 반환 될 수 있습니다

반환  " /WEB-INF/admin/welcome.jsp "

리디렉션 리디렉션

반환  " : /admin/next.action 리디렉션 " ;

등가 위해 response.sendRedirect (), 포워딩 어드레스로 브라우저 주소창 전달 후.

새로운 요청을 시작하기 때문에 원래의 매개 변수를 전달할 때, 다음 URL로 전달 될 수 없습니다,

파라미터 A = 1, B = 2, url로 접속자 수를 파라미터를 돌려 보내는

앞으로 전달

반환  " 앞으로 : /admin/forward.action를 " ;

등가 request.getRequestDispatcher (). 포워드 (요청, 응답) 브라우저 주소창 또는 원래 주소를 전달 후.

전달을 수행하고 새로운 요청 및 응답하지만, 요청 및 공유 요청 및 응답을 전달하기 전에되지 않습니다.

매개 변수를 직접 전달하기 전에 다시 사용할 수 있습니다.

즉 모든이 기사에 대한, 우리는 당신이 집에 스크립트를 지원 희망 배울 도움이되고 싶어합니다.

 

문서에서 : https://www.jb51.net/article/136822.htm

추천

출처www.cnblogs.com/JonaLin/p/11572401.html