Pergunta

É possível usar várias anotações de primavera @RequestMapping em um método? Curti:

@RequestMapping("/")
@RequestMapping("")
@RequestMapping("/welcome")
public String welcomeHandler(){
 return("welcome");
}
Foi útil?

Solução

@RequestMapping tem um String[] Parâmetro de valor, para que você possa especificar vários valores como este:

@RequestMapping(value={"", "/", "welcome"})

Outras dicas

Do meu teste (primavera 3.0.5), @RequestMapping(value={"", "/"}) - só "/" funciona, "" não. No entanto, eu descobri que isso funciona: @RequestMapping(value={"/", " * "}), a " * " Combina qualquer coisa, por isso será o manipulador padrão, caso nenhum outro.

Não precisa. A Anotação de Requestmapping suporta curingas e caminhos de estilo formigas. Também parece que você quer apenas uma visualização padrão, para que você possa colocar

<mvc:view-controller path="/" view-name="welcome"/>

no seu arquivo de configuração. Isso encaminhará todas as solicitações à raiz para a visualização de boas -vindas.

No momento, com o uso do spring -boot - {} não funcionará.

@RequestMapping

ainda tem string [] como um parâmetro de valor, então a declaração se parece com a seguinte:

 @RequestMapping(value=["/","/index","/login","/home"], method = RequestMethod.GET)

A maneira mais curta é: @RequestMapping({"", "/", "welcome"})

Embora você também possa fazer:

  • @RequestMapping(value={"", "/", "welcome"})
  • @RequestMapping(path={"", "/", "welcome"})

É melhor usar a anotação PathVariable se você ainda deseja obter o URI que foi chamado.

@PostMapping("/pub/{action:a|b|c}")
public JSONObject handlexxx(@PathVariable String action, @RequestBody String reqStr){
...
}

ou analisá -lo do objeto de solicitação.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top