Solicitação de instruções de anotação
A função das solicitações da Web @RequestMapping Maps Maps para classes de manipulador específicas e/ou métodos de manipulador. Esta anotação pode ser usada em uma classe ou método e especifica o caminho de solicitação através do valor da propriedade. Usado na classe Controller para fornecer informações preliminares sobre mapeamento de solicitação de URL, que é um caminho pré-solicitação em relação ao diretório raiz do aplicativo da Web. Usado no método do controlador, significa fornecer um mapa de URL detalhado. Se a classe do controlador não tiver uma anotação de solicitação, o URL da marca de anotação no método será relativo ao diretório raiz do aplicativo da Web.
A anotação @RequestMapping fornece as seguintes propriedades:
Nome: usado para especificar o nome do mapeador
Valor: usado para especificar o caminho de mapeamento, o mesmo que o caminho
Caminho: usado para especificar o caminho de mapeamento, o mesmo valor
Método: usado para especificar o tipo de solicitação: obter, postar, cabeça, opções, put, patch, excluir, rastrear
parâmetros: especifique os parâmetros solicitados
Cabeçalhos: Especifique o cabeçalho da solicitação, Exemplo de código-fonte: requestMapp (value = "/Something", headers = "content-type = text/*")
Consumidores: Especifica o tipo de conteúdo (tipo de conteúdo) que lida com o envio da solicitação, como Application/JSON, Text/HTML. A solicitação será mapeada apenas se o tipo de conteúdo corresponder a um desses tipos de mídia.
Produz: especifique o tipo de conteúdo retornado pela solicitação, por exemplo: Produces = "Application/JSON; Charset = UTF-8"
Especifique o caminho de mapeamento através do atributo de valor
Use a anotação de requestmapping na classe de controlador
@Controlador @requestmapping ("order") public class OrderInfocontroller {// Exemplo 1 @RequestMapping ("OrderInfo") public ModelAndView Orderinfo1 () {return new ModelandView ("Order/Info", "Mensagem", "OrderInfo"); }}Adicionado o Anotation RequestMapping ("Order") na classe OrderController, indicando que todas as solicitações de pares devem começar com "raiz/ordem"
O caminho de solicitação por exemplo 1 é: http: // localhost: 8080/springmvcnext/order/orderinfo
Exemplo 1 Se @RequestMapping ("Ordem") no controlador for comentado, o caminho de solicitação correspondente é: http: // localhost: 8080/springmvcnext/orderinfo
Usando a anotação requestmapping no método do controlador
1. Uso básico comum
@Controlador @requestmapping ("order") public class OrderInfocontroller {// Exemplo 1 @RequestMapping ("OrderInfo") public ModelAndView Orderinfo1 () {return new ModelandView ("Order/Info", "Mensagem", "OrderInfo"); } //Example 2: Handle multiple url mappings @RequestMapping({"info","index"}) //Or @RequestMapping(value={"info","index"}) public ModelAndView OrderInfo2() { return new ModelAndView("order/info","message", "OrderInfo2"); } // Exemplo 3 @RequestMapping público ModelAndView Orderinfo3 () {return New ModelAndView ("Order/Info", "Mensagem", "Orderinfo3"); }}RequestMapping apenas configura o atributo de valor. Se nenhum outro atributo for exibido, o valor será omitido. Você pode apenas preencher as informações de mapeamento de URL. Se outros atributos forem especificados, o atributo de valor deverá ser claramente preenchido.
O caminho de acesso do Exemplo 1 acima é: http: // localhost: 8080/springmvcnext/order/orderinfo
Exemplo 2: A propriedade Value na interface RequestMapping é uma matriz, e todos os caminhos de acesso também são suportados para passar por um exemplo do Exemplo 2: http: // localhost: 8080/springmvcnext/order/Índice ou http: // lochhost: 8080/springmvcnext//informação
Exemplo 3: Quando o valor está vazio, significa que o método é a ação padrão da classe. O caminho de acesso do Exemplo 3 é: http: // localhost: 8080/springmvcnext/ordem
2. Mapeamento de modelo de URL
Declare a variável URI na anotação RequestMapping e acesse o valor a partir do URL de solicitação real através da anotação @PathVariable. O exemplo é o seguinte:
@ControllerPublic class OrderInfocontroller {// Exemplo 10 URL com espaço reservado @RequestMapping (value = "user/{userId}/order/{orderNumber}", método = requestMethod.get) Public ModelAndView OrderInfo4 (@PathVariable "@PathVeriable string) "UserID:"+UserID+"OrderNumber:"+OrderNumber); }}Exemplo 10 URL de solicitação: http: // localhost: 8080/springmvcnext/user/12/order/333 Quando uma solicitação é iniciada através deste URL, o springmvc extrairá a variável × × {× ×} no modelo de URL até @PathVariable. A variável URL será automaticamente convertida para o tipo correspondente. Se não puder ser convertido, um erro será retornado. Por exemplo, tente acessá -lo com o seguinte URL: http: // localhost: 8080/springmvcnext/user/xxx/order/333 em que o parâmetro userID = xxx, ocorre um erro:
3. Mapeamento de caminho do URL no estilo de formiga
Os caracteres curinga do estilo de formiga são os seguintes:
Exemplo:
@ControllerPublic Classe OrderInfocontroller {// Exemplo 11 URL com espaço reservado @RequestMapping (value = "Order*", Method = requestMethod.get) //@requestMapping (value = "ordermeth = requestmethod.get) //@requestMapp (value =" new ModelAndView ("Order/Info", "Mensagem", "OrderInfo5"); }}Exemplo 11 Solicitação URL: http: // localhost: 8080/springmvcnext/order/orderdexx? OrderNumber = 12 Ele pode corresponder a todas as solicitações de http: // localhost: 8080/springmvcNext/order/ordexxxxx?
@RequestMapping (Value = "Order?", Method = requestMethod.get) pode corresponder a ".../OrderA? OrderNumber…." ".../Ordens? OrderNumber ...". @RequestMapping (Value = "Order/**", Method = requestMethod.get) pode corresponder a ".../ordem/aaa? OrderNumber…." ".../Order/BBB/CCC? OrderNumber…."
Além disso, o RequestMapping também suporta mapeamento de caminho de URL de estilo de expressão regular, pule isso
Especifique o tipo de solicitação através do atributo do método
O tipo de Método Pedido de solicitação de atributo fornecido por RequestMapping, o exemplo a seguir aceita apenas solicitações de obtenção
// Exemplo 4 @ReQuestMapp (value = "detalhe", método = requestMethod.get) // Você também pode usar @getMapping ("detalhe") public ModelAndView info () {return modelandView ("order/info", "mensagem", "info"); }Springmvc também fornece anotações dedicadas para cada tipo de solicitação:
@GetMapping
@PostMapping
@PutMapping
@DeleTemapping
@Patchmapping
Especifique o nome do parâmetro ou as restrições do valor do parâmetro através dos parâmetros
O atributo params pode definir que o parâmetro de solicitação contém parâmetros específicos, ou também pode definir restrições nos valores dos parâmetros, conforme mostrado no código a seguir:
// Exemplo 5 parâmetros Os parâmetros qualificados incluem OrderNumber @ReQuestMapping (value = "detalhe2", params = "orderNumber") public ModelAndView Detail2 (String orderNumber) {retorna new ModelandView ("Order/Info", "Mensagem", OrderNumber); } // Exemplo 6 Params o valor dos parâmetros qualificados @ReQuestMapping (value = "detalhe3", params = "orderNumber! = 1222") public ModelAndView Detail3 (String orderNumber) {retorna new ModelAndView ("Order/Info", "Mensagem", OrderNumber); }Exemplo 5: Os parâmetros de solicitação qualificados devem conter o parâmetro OrderNumber. Se o parâmetro chamado OrderNumber não estiver incluído, o acesso será negado: Caminho de acesso: http: // localhost: 8080/springmvcnext/order/detalhe2? OrderNumber = 12
Exemplo 6: Os parâmetros de solicitação qualificados devem conter o número de ordem do parâmetro e o valor do parâmetro não pode ser 1222. Caminho de acesso: http: // localhost: 8080/springmvcnext/order/detalhe3? OrderNumber = 1222 Um erro é relatado
Especifique o nome do parâmetro ou restrições de valor de parâmetro através de cabeçalhos
O atributo de método fornecido pelo requestmapping pode especificar o tipo de cabeçalho da solicitação. Somente quando o tipo de cabeçalho de dados da solicitação atende ao valor especificado, ele pode ser acessado normalmente.
// Exemplo 7 Params Valor de parâmetro limitado @RequestMapping (value = "HeadTest", Headers = "Apikey = 2313131313") // @requestMapp (value = "HeadTest", Headers = {"Acept = Ordem/JSON) Public ModelAndview" e Cabeçalho "{Return ModelAndview (" Ordem/"Order/JSON"}) Public e " }Exemplo 7: O cabeçalho da solicitação deve conter o Apikey: 23131313 para retornar normalmente, acessar diretamente e retornar erro:
Adicionar informações do cabeçalho APIKEY: 2313131313 O acesso é bem -sucedido:
Especifique o tipo de conteúdo de envio solicitado por meio do consumo (tipo de conteúdo)
// Exemplo 8 Consumidor @RequestMapping (Value = "Consumes", Method = requestMethod.Post, Consumer = "Application/JSON") Public ModelAndView Consumers (String OrderNumber) {Return New ModelandView ("Order/Info", "Mensagem", OrderNumber); }O exemplo limita o tipo de parâmetro de solicitação ao aplicativo/json, o que significa que esse método apenas processa solicita que o tipo conteúdo seja aplicativo/json:
A seguir, passa o teste do Postman:
Defina o formato do parâmetro de solicitação como Application/JSON, que pode ser acessado normalmente:
Defina o formato de parâmetro como X-Form-Urlencoded, erro de retorno, status HTTP 415
Especifique o tipo de conteúdo devolvido através da produção (do tipo conteúdo)
O atributo dos produtores é usado para definir o tipo de conteúdo de retorno e atende às seguintes condições: o valor que contém aceitação no cabeçalho da solicitação de aceitação é o mesmo que o valor definido pelo produtor ou a solicitação aceita é definida sem exibição.
// O Exemplo 8 produz aplicativo de dados de retorno limitado/json @RequestMapping (value = "Produces", Method = requestMethod.get, Produces = "Application/JSON") Public ModelAndView Produce (String OrderNumber) {Return New ModelAndView ("Order/Info", "Mensagem", OrderNumber); }Exemplo 8 indica o aplicativo de formato de conteúdo de retorno/json. Quando o formato de aceitação definido pelo cliente é o texto/JSON, um erro é relatado. Status HTTP 406
Quando o formato de aceitação definido pelo cliente é o aplicativo/json ou o valor de aceitação não é definido, ele pode ser executado normalmente
Resumir
O exposto acima é o pedido de mapeamento de solicitações Anotação de requerimento para a revisão do MVC da primavera e aprenda nova série de tutoriais apresentados pelo editor. Espero que seja útil para você. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a você a tempo. Muito obrigado pelo seu apoio ao site wulin.com!