SpringMVC: parâmetros do manipulador e valor de retorno

@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.

Publicado 202 artigos originais · elogiou 37 · 30.000+ visualizações

Acho que você gosta

Origin blog.csdn.net/lovecuidong/article/details/103487002
Recomendado
Clasificación