@RequestMapping
Mapeamento do caminho da URL
@RequestMapping(value="/item")
或
@RequestMapping("/item")
value的值是数组,可以将多个url映射到同一个方法
Mapeamento de solicitação restrito
Adicione @RequestMapping (url) à classe para especificar um prefixo de solicitação comum.Restrinja todos os métodos nessa classe.O URL da solicitação deve começar com o prefixo da solicitação e use esse método para classificar e gerenciar a URL.
@RequestMapping放在类名上边,设置请求前缀:
@Controller
@RequestMapping("/item")
@RequestMapping放在方法名上边,设置请求映射url:
@RequestMapping("/queryItem")
访问地址为:/item/queryItem
Limitação do método de solicitação
Limite o método GET, se você acessar via Post, receberá um erro: Status HTTP 405 - Método de solicitação 'POST' não suportado
@RequestMapping(value="/editItem", method=RequestMethod.GET)
Limite o método POST, se você acessar via Post, receberá um erro: Status HTTP 405 - Método de solicitação 'GET' não suportado
@RequestMapping(method=RequestMethod.POST)
GET e POST podem ser
@RequestMapping(method={RequestMethod.GET,RequestMethod.POST})
O valor de retorno do método do controlador
Retornar para ModelAndView
Quando o método precisar terminar, defina ModelAndView e defina o modelo e a visualização separadamente.
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("itemsList", itemsList);
modelAndView.setViewName("itemsList.jsp");
return modelAndView;
Retorno nulo
A solicitação e a resposta podem ser definidas nos parâmetros formais do método do controlador e usar a solicitação ou resposta para especificar o resultado da resposta:
1. Use request para ir para a página:
request.getRequestDispatcher("页面路径").forward(request, response);
2. Redirecione via página de resposta:
response.sendRedirect("url") ;
3. Você também pode especificar o resultado da resposta através da resposta, por exemplo, dados json da resposta:
response.setCharacterEncoding("utf-8");
response.setContentType("application/json;charset=utf-8");
response.getWriter().write("json串");
String de retorno
1. Endereço de visualização lógica
O método do controlador retorna uma sequência para especificar o endereço de visualização lógica, que é resolvido no endereço de visualização física pelo resolvedor de visualização.
Endereço de visualização física (caminho jsp) = prefixo + endereço de visualização lógica + sufixo
<!-- springmvc.xml配置视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 配置jsp路径的前缀 -->
<property name="prefix" value="/WEB-INF/jsp/"/>
<!-- 配置jsp路径的后缀 -->
<property name="suffix" value=".jsp"/>
</bean>
//Handler方法返回逻辑视图地址
return "items/itemsList";
2. Redirecionar
O método do controlador retorna o resultado e redireciona para um endereço de URL, o URL na barra de endereços do navegador será alterado. Os dados da solicitação modificada não podem ser enviados para o endereço redirecionado, porque a solicitação é executada novamente após o redirecionamento e a solicitação não pode ser compartilhada.
//重定向到queryItem.action地址,request无法带过去
return "redirect:queryItem.action";
O método de redirecionamento é equivalente a "response.sendRedirect ()". A barra de endereços do navegador se torna o endereço encaminhado após o encaminhamento, porque o encaminhamento executa uma nova solicitação e resposta.
Como os parâmetros originais de uma nova solicitação não podem ser passados para o próximo URL ao encaminhar, se você quiser passar os parâmetros, poderá adicionar parâmetros após /item/queryItem.action, da seguinte maneira: / item / queryItem? ... & ...
3. Encaminhamento
Após a execução do método do controlador, continue executando outro método do controlador, encaminhando a página através do encaminhamento, o URL da barra de endereços do navegador permanecerá inalterado e a solicitação poderá ser compartilhada.
//结果转发到editItem.action,request可以带过去
return "forward:editItem.action";
O modo de encaminhamento é 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 uma nova solicitação e resposta, mas compartilha uma solicitação e resposta com a solicitação antes de encaminhar. Portanto, os parâmetros solicitados antes do encaminhamento ainda podem ser lidos após o encaminhamento.