MVC 주석 개발은 주석을 기반으로 한 클래스 개발을 의미합니다. 정의 된 각 프로세서에 대해 XML에 등록 할 필요가 없습니다.
등록은 코드에서 클래스와 메소드에 주석을 달면 완료됩니다.
프로세서를 정의하십시오
@Controller : 현재 클래스는 프로세서입니다
@RequestMapping : 현재 메소드는 프로세서 메소드이고 메소드 이름은 임의이며 요청이 처리되어 응답됩니다.
@controller public class myController {@requestmapping (value = "/hello.do") public modelandview docontrol (httpservletrequest request, httpservletreponse responsk) {modelandview mv = new ModelAndView (); mv.addoBject ( "메시지", "실행 방법"); mv.setviewname ( "환영, 닐!"); 리턴 MV; }} 예를 들어 RequestMapping을 제한 할 수 있습니다
다음과 같이 코드를 복사하십시오. @requestmapping (value = "/hello.do", params = { "name = neil", "! age"}, method = requestmethod.post)
method = requestMethod.post 제한 제출 유형을 게시합니다
params = { "name = neil", "! age"} 매개 변수 이름은 제한된 요청에 따라야하고 값은 neil이며 매개 변수 연령을 전달할 수 없습니다.
요청 매개 변수를 수락합니다
요청의 매개 변수 이름이 프로세서 메소드의 매개 변수 이름과 동일하면 직접 얻을 수 있습니다.
@requestmapping (value = "/hello.do") public modelandview docontroll (문자열 이름, int age) {System.out.println ( "이름 :" + name + ", age :" + age); ModelAndView MV = 새로운 ModelAndView (); 리턴 MV; }매개 변수 이름이 일치하지 않으면 @requestparam을 통해 찾아야합니다.
@requestparam에는 세 가지 속성이 있습니다
코드 사본은 다음과 같습니다. docontroll (@requestparam (name = "username") 문자열 이름, @requestparam (name = "userage") int age)
경로 변수 @pathvariable
프로세서 방법의 매개 변수는 요청에 의해 운반되는 매개 변수 또는 URI의 변수, 즉 경로 변수에서 나올 수 있습니다.
위에서 언급 한 일반 매개 변수와 마찬가지로 경로 변수 이름이 값을 수신하는 매개 변수 이름과 일치하지 않으면 경로 변수 이름을 매개 변수를 통해 표시해야합니다.
아래와 같이, 사용자 이름과 이름, 연령 및 연령을 참고하십시오.
@requestmapping (value = "/{username}/{age} /hello.do") public modelandview docontroll (@pathvariable ( "username") 문자열 이름, @requestparam int age) {system.out.println ( "name :" + name + ", age); ModelAndView MV = 새로운 ModelAndView (); 리턴 MV; }프로세서 메소드는 값을 반환합니다
@Controller 주석이있는 다음 4 개의 일반적으로 사용되는 프로세서는 다음과 같습니다.
1, ModelAndView로 돌아갑니다
프로세서 메소드가 완료되면 다른 리소스로 이동하여 리디렉션 된 리소스간에 데이터를 전달한 다음 모델 및 모델을 반환해야합니다.
public modelandview docontroll () {ModelAndView ModelAndView = new ModelAndView (); // 전달 된 데이터 modelandView.AdDoBject ( "name", "neil"); ModelAndView.SetViewName ( "/user.do"); Return ModelandView; }2, void로 돌아갑니다
요청이 처리 된 후에는 점프 할 필요가 없으며 AJAX 비동기 요청 응답과 같이 프로세서를 공극으로 되돌릴 수 있습니다.
점프 해야하는 경우 Servletapi를 사용하여 SendRedirect 또는 Forward를 사용할 수도 있습니다.
3, 반환 객체
프로세서는 객체 객체를 반환 할 수 있으며,이 객체는 논리적보기로 표시되지 않지만 페이지에 데이터를 직접 표시하는 데 사용됩니다.
객체 개체를 반환하려면 @ResponseBody 주석을 사용하여 변환 된 JSON 데이터를 응답 중량에 넣어야합니다.
@RequestMapping (value = "/hello.do") @ResponseBody Public ModelandView DoconTroll () {Return New Student ( "Neil", 998); } 프론트 엔드는 데이터를 얻습니다
fr.ajax ({url : "hello.do", complete : function (data) {alert (data.name + "" + data.age);}})마찬가지로 수집 목록,지도 등을 반환 할 수 있습니다.
@requestmapping (value = "/hello.do") @ResponseBody public modelandView doconTroll () {list <tudent> list = new ArrayList <sulraylist <gully> (); list.add (신입생 ( "a", 11)); list.add (신입생 ( "B", 22)); list.add (신입생 ( "C", 33)); 반환 목록; } fr.ajax ({url : "hello.do", complete : function (data) {$ (data) .Each (function (index)) {alert (data [index] .name + data [index] .age);}}})4, 문자열로 돌아갑니다
문자열을 반환하기위한 세 가지 시나리오가있을 수 있습니다.
논리적보기 이름
프로세서가 반환 한 문자열은 논리보기 이름을 지정하고 뷰 파서 해상도를 통해 물리적보기 주소로 변환 할 수 있습니다.
최종 실제 액세스 경로 = "접두사" + 논리보기 이름 + "접미사"
사전 평가를 지정하지 않으면 물리적보기 이름을 직접 반환 할 수도 있습니다.
"/web-inf/admin/welcome.jsp"반환
리디렉션 리디렉션
"리디렉션 :/admin/next.action"을 반환합니다.
응답 .sendRedirect ()와 동일합니다. 전달 후 브라우저의 주소 막대가 전달 된 주소가됩니다.
새 요청이 시작되면 전달할 때 원래 매개 변수를 다음 URL로 전달할 수 없습니다.
매개 변수를 전달하려면 URL 및 A = 1 & B = 2 이후에 매개 변수를 연결할 수 있습니다.
전달 전달
"앞으로"반환 :/admin/forward.action ";
request.getRequestDisPatcher (). Forward (요청, 응답)와 같습니다. 전달 후 브라우저 주소 막대는 여전히 원래 주소입니다.
전달은 새로운 요청 및 응답을 실행하지 않지만 전달하기 전에 요청과 응답을 공유합니다.
전달하기 전에 매개 변수를 직접 재사용 할 수 있습니다.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.