Pergunta

Estou fazendo um simples 'get' no JBoss/Spring.Quero que o cliente me passe uma matriz de números inteiros na URL.Como faço para configurar isso no servidor?E mostrar se o cliente deve enviar a mensagem?

Isso é o que tenho agora.

@RequestMapping(value="/test/{firstNameIds}", method=RequestMethod.GET)
@ResponseBody
public String test(@PathVariable List<Integer> firstNameIds)
{
     //What do I do??
     return "Dummy"; 
}

No cliente eu gostaria de passar algo como

http://localhost:8080/public/test/[1,3,4,50]

Quando fiz isso, recebo um erro:

java.lang.IllegalStateException:Não foi possível encontrar @PathVariable [firstNameIds] em @RequestMapping

Foi útil?

Solução

GET http://localhost:8080/public/test/1,2,3,4

@RequestMapping(value="/test/{firstNameIds}", method=RequestMethod.GET)
@ResponseBody
public String test(@PathVariable String[] firstNameIds)
{
    // firstNameIds: [1,2,3,4]
    return "Dummy"; 
}

(testado com Spring MVC 4.0.1)

Outras dicas

Você deveria fazer algo assim:

Chamar:

GET http://localhost:8080/public/test/1,2,3,4

Seu controlador:

@RequestMapping(value="/test/{firstNameIds}", method=RequestMethod.GET)
@ResponseBody
public String test(@PathVariable List<Integer> firstNameIds) {
     //Example: pring your params
     for(Integer param : firstNameIds) {
        System.out.println("id: " + param);
     }
     return "Dummy";
}

se você quiser usar colchetes - []

DELETE http://localhost:8080/public/test/[1,2,3,4]

@RequestMapping(value="/test/[{firstNameIds}]", method=RequestMethod.DELETE)
@ResponseBody
public String test(@PathVariable String[] firstNameIds)
{
    // firstNameIds: [1,2,3,4]
    return "Dummy"; 
}

(Testado com Spring MVC 4.1.1)

Poderia fazer @PathVariable String ids e depois analisar a string.

Então, algo como:

@RequestMapping(value="/test/{firstNameIds}", method=RequestMethod.GET)
@ResponseBody
public String test(@PathVariable String firstNameIds)
{
     String[] ids = firstNameIds.split(",");
     return "Dummy"; 
}

Você passaria:

http://localhost:8080/public/test/1,3,4,50
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top