SpringMVC의 컨트롤러는 사용자 요청을 처리하는 데 사용됩니다. 컨트롤러는 struts1의 동작과 동일합니다. 구현 메커니즘과 운영 원칙은 비슷합니다.
컨트롤러는 일반적으로 AbstrcAtController를 직접 상속하고 HandlerequestInal 방법을 구현하는 인터페이스입니다. handlerequestinternal 메소드는 struts1의 실행 메소드와 동일합니다
import org.springframework.web.servlet.modelandview; import org.springframework.web.servlet.mvc.abstractcontroller; public class catcontroller 확장 AbstractController {private icatservice catservice; // setter and getter 약간 보호 된 modelandview. httpservletrequestrequest, httpservletrequestrequest, httpservletresponse responsk) 예외 {string action = request.getParameter ( "action"); if ( "list".equals (action)) {return}} protected ModelAndView List (httpervletRequest) 예외 {list <cat> catlist = catservice.listcat (); reture.setattribute ( "catlist", catlist); return new ModelAndView ( "cat/listCat");}}}SpringMVC는 내장 데이터 캡슐화가 없으며 개발자는 데이터 변환 코드 자체를 캡슐화 할 수 있습니다.
SpringMVC는 뷰 레이어 처리에서 독특합니다. handlerequestinternal은 JSP 객체의 캡슐화로 간주 될 수있는 ModelAndView 객체를 반환합니다. ModelAndiview는 JSP 페이지의 경로를 직접 수용합니다. 예를 들어, "Cat/ListCat"매개 변수는 JSP 경로의 일부일뿐입니다. 실제 완전한 경로는 "Web-Inf/JSP/Cat/Catlist.jsp"입니다. 경로 전후의 부품은 구성 파일에 구성됩니다.
JSP 경로를 설정하는 것 외에도 ModelAndView는 NewModelandView ( "Cat/ListCat", "Cat", Cat)와 같은 요청에 미리 요청하지 않고도 모델 객체를 뷰 레이어에 직접 전달할 수 있습니다. 여러 매개 변수가 전달되면 다음과 같은 맵을 사용할 수 있습니다.
지도 맵 = newhashmap (); Map.put ( "고양이", 고양이); map.put ( "catlist", catlist); 새로운 ModelAndView ( "Cat/ListCat", Map)를 반환합니다.
일반적으로 Spring-Action.xml과 같은 독립적 인 XML 파일은 웹 관련 구성 요소를 구체적으로 구성하는 데 사용됩니다.
<? xml version = "1.0"encoding = "utf-8"?> <! dctypebeans public "-// spring // dtd bean // en" "http://www.springframework.org/dtd/spring-beans.dtd"> <value>/web-inf/jsp/</value> <!-jsp prefix-> </propertion> <property name = "propertion"> <value> .jsp </value> <! <!-jsp 접미사-> </property> <!-구성 URL 매핑-> <bean id = "urlhandlermping"> <property name = "mappings"> <props> <props> "cat.mvc"-> <prop key = "cat.mvc"> catcontroller </prop> <props> </property> </bean> <bean id = "catcontroller"> <property name = "catservice"ref = "catservice"> </property> </bean> </beans> web.xml pargaram> <! <Param-Name> ContextConfigLocation </param-name> <param-value> /web-inf/classes/applicationcontext.xml, /web-inf/classes/spring-action.xml </param-value> </context-param> <lariser> <!-Listener를 사용한 스프링 보수화 파일로드-> <listerclass> org.springframework.web.context.contextloaderListener </listener-class> </listener> <servlet> <!-스프링 유통 업체-> <servlet-name> spring </servlet-name> <servlet-class> org.spramework.web.servlet.dispitcherservlet </servlet class> <Param-name> ContextConfigLocation </param-name> <param-value> /web-inf/classes/spring-action.xml </param-value> </init-param> <load-on-startup> 1 </load-on-startup> <!-startup-> servlet-mapping> <servlet-name> <Url>*. MVC </url> </servlet-Mapping>
컨트롤러가 여러 비즈니스 로직을 처리하려면 Struts 1의 발송과 동등한 MultiacectionController를 사용할 수 있습니다. 특정 매개 변수에 따라 다른 메소드에 다른 요청을 배포 할 수 있습니다.
import org.springframework.web.servlet.mvc.multiaction.multiactioncontroller; public class catcontroller acpractController {private icatservice catservice; // setter 및 getter 약간 보호 된 model andview add (httpervletrequestRequest, httpserverress 응답) {... ModelAndView ( "Cat/AddCat");} Protected ModelAndView List (httpservletRequestRequest, httpservletResponse 응답)는 예외 {list <cat> catlist = catservice.listcat (); request.setattribute ( "Catlist", Catlist); Catlist view (Cat/listcat);Spring-Action.xml로 구성하십시오
<bean id = "paramethodresolver"> <property name = "paramname"> value> action </value> <!-분포 매개 변수 구성-> </property> <property> <property> <property> <value> list </value> <! <! <props> <prop key = "cat.mvc"> catcontroller </prop> <!-"cat.mvc"에 액세스하는 "cat.mvc" "는 처리를 위해 Catcontroller에 양도 될 것입니다-> <prop key ="catmulti.mvc "> catmulticontroller </prop> <!-"catmulti.mvc "에 액세스 할 때-Catmulticontroller에 액세스 할 것입니다. <props> </property> </bean> <bean id = "catcontroller"> <property name = "catservice"ref = "catservice"> </bean> </bean> <bean id = "catmulticontroller"> <property name = "catservice"ref = "catservice"> </bean>
요약
위의 내용은 봄에 MVC 모듈 코드에 대한 자세한 설명입니다. 모든 사람에게 도움이되기를 바랍니다. 관심있는 친구는이 사이트의 다른 관련 주제를 계속 참조 할 수 있습니다. 단점이 있으면 메시지를 남겨 두십시오.