Desenvolvimento de anotação do MVC significa um desenvolvimento de classe com base em anotações. Para cada processador definido, não há necessidade de se registrar no XML.
O registro é concluído apenas anotando classes e métodos no código.
Defina o processador
@Controller: A classe atual é um processador
@RequestMapping: O método atual é um método do processador, o nome do método é arbitrário e a solicitação é processada e respondida.
@Controller public class MyController {@ReQuestMapping (value = "/hello.do") public ModelAndView Docontrol (solicitação httpServletRequest, httpServletResponse Response) {modelAndView mv = new ModelAndView (); mv.addObject ("mensagem", "método de execução"); mv.setViewName ("Welcome, Neil!"); retornar MV; }} Requestmapping pode ser restrito, por exemplo
Copie o código da seguinte forma: @RequestMapping (value = "/hello.do", params = {"name = neil", "! Age"}, método = requestmethod.post)
Método = requestMethod.post Tipo de envio limitado para postar
params = {"name = neil", "! Age"} O nome do parâmetro deve ser transportado na solicitação limitada, o valor é Neil e a idade do parâmetro não pode ser transportada.
Aceitar parâmetros de solicitação
Se o nome do parâmetro na solicitação for o mesmo que o nome do parâmetro do método do processador, ele poderá ser obtido diretamente.
@RequestMapping (value = "/hello.do") public ModelAndView Docontroll (nome da string, int Age) {System.out.println ("Nome:" + Name + ", Age:" + Age); ModelAndView MV = new ModelAndView (); retornar MV; }Se os nomes dos parâmetros forem inconsistentes, você precisará localizá -lo através do @RequestParam.
@RequestParam tem três propriedades
A cópia do código é a seguinte: Docontroll (@RequestParam (name = "UserName") Nome da sequência, @RequestParam (name = "Useragem") int Age)
Variável de caminho @pathvariable
Os parâmetros no método do processador podem vir dos parâmetros transportados pela solicitação ou de variáveis no URI, ou seja, variáveis de caminho.
Como os parâmetros normais mencionados acima, se o nome da variável do caminho for inconsistente com o nome do parâmetro que recebe seu valor, você precisará indicar o nome da variável do caminho através dos parâmetros.
Como mostrado abaixo, observe o nome de usuário e o nome, a idade e a idade.
@RequestMapping (Value = "/{Nome de usuário}/{Age} /hello.do") public ModelAndView Docontroll (@Pathvariable ("Nome de usuário") Nome da sequência, @RequestParam int Age) {System.out.println ("Nome:" Nome + ", Age:" Age); ModelAndView MV = new ModelAndView (); retornar MV; }O método do processador retorna o valor
Os quatro processadores comumente usados com a anotação @Controller são:
1, retorne ao ModelandView
Após a conclusão do método do processador, ele precisa pular para outros recursos e passar dados entre os recursos redirecionados e retornar o ModelAndView.
public ModelAndView Docontroll () {ModelAndView ModelAndView = new ModelAndView (); // o Data ModelAndView.adDobject aprovado ("Nome", "Neil"); modelAndView.SetViewName ("/user.do"); retornar modelandview; }2, retorne a void
Depois que a solicitação é processada, não há necessidade de pular e o processador pode ser colocado de volta ao vazio, como a resposta de solicitação assíncrona do Ajax.
Se você precisar pular, também poderá usar o Servletapi para enviar ou avançar.
3, objeto de retorno
O processador pode retornar um objeto, que não aparece como uma visualização lógica, mas é usado para exibir dados diretamente na página.
Retornando um objeto, você precisa usar a anotação @ResponseBody para colocar os dados JSON convertidos no peso da resposta.
@RequestMapping (value = "/hello.do") @ResponseBody Public ModelAndView Docontroll () {Return New Student ("Neil", 998); } O front-end recebe dados
FR.AJAX ({url: "hello.do", complete: function (data) {alert (data.name + "" + data.age);}})Da mesma forma, você pode devolver a lista de coleções, mapa, etc.
@RequestMapping (Value = "/hello.do") @ResponseBody Public ModelAndView Docontroll () {List <Ardead> List = new ArrayList <vertenty> (); list.add (novo aluno ("A", 11)); list.add (novo aluno ("B", 22)); list.add (novo aluno ("C", 33)); lista de retorno; } FR.AJAX ({url: "hello.do", complete: function (data) {$ (data) .Each (function (index)) {alert (data [index] .Name + Data [index] .age);}}})4, retorne a string
Pode haver três cenários para devolver uma string:
Nome da visualização lógica
A sequência retornada pelo processador pode especificar o nome da visualização lógica e convertê -la em um endereço de visualização física através da resolução do analisador de visualização.
O caminho final de acesso real = "Prefixo" + Nome da Visualização Lógica + "Sufixo"
Se você não especificar o pré-sufixo, também pode retornar diretamente o nome da visualização física, como
Retorne "/web-inf/admin/welcome.jsp"
Redirecionar o redirecionamento
retornar "Redirect: /admin/next.action";
É equivalente à resposta.sendRedirect (). Após o encaminhamento, a barra de endereços do navegador se torna o endereço encaminhado.
Como uma nova solicitação é iniciada, os parâmetros originais não podem ser passados para o próximo URL ao encaminhar.
Se você deseja passar os parâmetros, pode consumir parâmetros após o URL & a = 1 & b = 2
Encaminhamento de encaminhamento
retornar "Forward: /admin/forward.action";
É equivalente a request.getRequestDispatcher (). Forward (solicitação, resposta). Após o encaminhamento, a barra de endereços do navegador ainda é o endereço original.
O encaminhamento não executa a nova solicitação e resposta, mas compartilha uma solicitação e resposta com a solicitação antes de encaminhar.
Os parâmetros podem ser reutilizados diretamente antes de encaminhar.
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.