Prefácio
Este artigo apresenta principalmente o conteúdo relevante sobre o roteamento da primavera com base nos parâmetros da URL. É compartilhado para seu valor de referência e aprendizado. Vamos dar uma olhada na introdução detalhada abaixo.
Descubra problemas
Recentemente, encontrei um problema ao escrever interfaces, ou seja, as partes do caminho dos URLs das duas interfaces de repouso são as mesmas e são distinguidas de acordo com a consulta que passa em diferentes parâmetros.
Por exemplo, a interface de upload normal do S3 é:
Put /{bucketName} /{objectName}A interface para fazer upload em pedaços é:
Put /{bucketName} /{objectName}? PartNumber = {PartNumber} & UploadId = {UploadId}O número de parte e o UPLOPLID são uma interface, e os dois parâmetros não são passados são outra interface. Então, como definir a rota na primavera?
Geralmente, definimos as rotas @RequestMapping(value = "/xx", method = RequestMethod.GET) . Então, na assinatura do método, os parâmetros podem ser injetados através do @RequestParam.
No entanto, não é possível implementar diretamente a distinção injetando diferentes parâmetros, como:
@Responsebody@requestmapping (value = "/xx", método = requestMethod.get) public string get1 () {return "get1";}@respostabody@requestmapping (value = "/xx", método = requestMethod.get) public string get2 (@RequestParam Name) {return "get2" + name;}Isso relatará um erro:
java.lang.illegalStateException: mapeamento ambíguo. Não é possível mapear 'Democontroller_v01' Método public java.lang.string com.nd.sdp.nds.controller.v01.democontroller.get1 () para {[/Demo/xx], métodos = [get]}: já existe 'Democontroller_v01' bean = [get]}: já existe '.Solução
Isso significa que você se registrou repetidamente, para que o @RequestParam não possa ser usado como base de roteamento.
@RequestParam
Usado para processar o tipo de conteúdo: conteúdo codificado para aplicação/x-www-forma-urlncoded. (No protocolo HTTP, se o tipo de conteúdo não for especificado, o parâmetro passado padrão é o tipo Application/X-Www-Form-Form-Form
O requestParam pode aceitar propriedades de tipos simples ou tipos de objetos.
A essência é usar o mecanismo de conversão da primavera Conversionservice para configurar o mapa de parâmetros de valor-chave no request.getParameter () para convertê-lo em um objeto ou campo de recebimento de parâmetro.
@RequestMapping é uma anotação de roteamento. Além do campo de valor comumente usado para definir o URL, ele também fornece um parâmetro params, que pode especificar como corresponder aos parâmetros da consulta no URL. Vários métodos de configuração:
Isso permite especificar rotas com muita flexibilidade.
Além disso, o @RequestMapping também fornece o parâmetro de cabeçalhos, o que nos permite rotear de acordo com a situação do cabeçalho!
Resumir
O acima é o conteúdo inteiro deste artigo. Espero que o conteúdo deste artigo tenha certo valor de referência para o estudo ou trabalho de todos. Se você tiver alguma dúvida, pode deixar uma mensagem para se comunicar. Obrigado pelo seu apoio ao wulin.com.