O controlador da Springmvc é usado para lidar com solicitações de usuário. Os controladores são equivalentes à ação no Struts1. Seu mecanismo de implementação e princípios operacionais são semelhantes.
O controlador é uma interface, que geralmente herda diretamente o abstrcatcontroller e implementa o método de handlerequestinternal. O método de HandleRequestinternal é equivalente ao método de execução do Struts1
importar org.springframework.web.servlet.modlandView; importar org.springframework.web.servlet.mvc.abstractcontroller; classe pública CatController estende abstrumController {Private ICATSERVICE; handlerequestinternal (httpServletRequestRequest, httpServletResponse resposta) lança exceção {string action = request.getParameter ("ação"); if ("list" .equals (ação) {return this.list (request);}} ModelAndView (htpersLeTReRLeTrelTrelTrelTrel) Exceção {list <at> catlist = catservice.listcat (); request.setAttribute ("catlist", catlist); retorna new ModelAndView ("cat/listcat");}}SpringMVC não possui encapsulamento de dados interno, os desenvolvedores podem encapsular o código de conversão de dados
Springmvc é único no processamento da camada de visualização. handlerequestinternal retorna um objeto ModelAndView, que pode ser considerado como encapsulamento dos objetos JSP. ModelAndiview aceita diretamente o caminho para a página JSP. Por exemplo, o parâmetro "CAT/LISTCAT" é apenas parte do caminho JSP. O caminho completo é "web-inf/jsp/cat/catlist.jsp". A peça antes e depois do caminho é configurada no arquivo de configuração.
Além de configurar os caminhos JSP, o ModelAndView também pode passar diretamente os objetos do modelo para a camada de visualização sem colocá -los na solicitação com antecedência, como o NewModlandView ("CAT/LISTCAT", "CAT", CAT). Se vários parâmetros forem passados, você pode usar o mapa, como
Mapa mapa = newhashmap (); map.put ("gato", gato); map.put ("catlist", catlist); retornar new ModelAndView ("CAT/LISTCAT", mapa);Geralmente, um arquivo XML independente como o spring-action.xml é usado para configurar especificamente os componentes relacionados à Web.
<? xml versão = "1.0" coding = "utf-8"?> <! <Value>/web-inf/jsp/</value> <!-jsp prefix-> </property> <propriedade name = "sufix"> <value> .jsp </value> <!-jsp sufixo-> </propriedade> <!-configuration url mapping-> <bean id = "urlhandlapping> <! "Cat.mvc"-> <propi key = "cat.mvc"> catcontroller </pup> <ports> </property> </bean> <bean id = "catcontroller"> <names name = "CatService" Ref = "CatService"> </propriedade> </bean> </! <amam-name> contextConfigLocation </param-name> <amam-value> /web-inf/classes/applicationContext.xml, /web-inf/classes/spring-action.xml </amam-value> </context-param> <Iunteer> <!-carregando o arquivo da mola usando o arquivo de springs usando o arquivo de spring- org.springframework.web.context.contextLoaderListener </lister-class> </ferirer> <sutlet> <!-Spring Distributor-> <Verlet-name> spring </servlet-name> <Servlet-class> org.springframework.web. initlert.verStletLe <amam-name> contextConfigLocation </amam-name> <amam-value> /web-inf/classes/spring-action.xml </amam-value> </irit-param> <lound-on-startup> 1 </load-on-startup> <!-carregando na startup-> </sertlet> <ervertlet> <ervertlep-nomp-nomp-name-name-kamenkame </sertlet> </arget-on </load-startup> <!-carregar na startup-> </sertlet> <ervlet-nomp-nomp-namen-kame-namelame-kamenkame </sertlet> </arget-on </load-startup> <!-na startup-> </sertlet> <ervlet-nomp-NAPPING-NAPLEM> <url>*
Se um controlador desejar lidar com várias lógicas de negócios, você poderá usar o MultiactionController, o que é equivalente à DispatchAction no Struts 1. Ele pode distribuir diferentes solicitações a diferentes métodos de acordo com um determinado parâmetro.
importar org.springframework.web.servlet.mvc.multiaction.MultiaCtionController; classe pública CatController estende abstrumController {private ICATSERVICE CATSERVICE; // Setter e getter ligeiramente ModelAndView (htPeSeReSTreteRowsTrewert, httter e getter liginly ModelAndView (htPesetsetretleTrews; ModelAndView ("Cat/AddCat");} Lista de modelos e view protegida (httpServletRequestRequest, httpServletResponse resposta) lança a exceção {list <tat> Catlist = CatService.listcat (); Solic.SetAttribute ("Catlist", CatList °;Configure para spring-action.xml
<bean id = "ParamethodResolver"> <propriedade name = "paramname"> <value> ação </value> <!-Configurar parâmetros de distribuição-> </property> <names name = "defaultMethodName"> <lored> list </value> <!-confidere Índia "). name = "mappings"> <ports> <props key = "cat.mvc"> catcontroller </pup> <!-accessando "cat.mvc" "será entregue a catcontroller para processamento-> <propra key =" catmulti.mvc "> catmulticontroller </prop> <! Catmulticontroller for Processing-> <PRESPS> </Property> </bean> <bean id = "CatController"> <Property name = "CatService" ref = "CatService"> </techers> </bean> <bean id = "CATMULTROLLER"> <Nome = "" CatService "Ref =" CATMULLER ">
Resumir
O exposto acima é toda a explicação detalhada do código do módulo MVC na primavera, espero que seja útil para todos. Amigos interessados podem continuar se referindo a outros tópicos relacionados neste site. Se houver alguma falha, deixe uma mensagem para apontá -la.