문제

JBoss / Spring에서 간단한 '얻기'를하고 있습니다.클라이언트가 URL의 정수 배열을 전달하도록합니다.서버에서 어떻게 설정합니까?클라이언트가 메시지를 보내야합니까?

이제 내가 가진 것입니다.

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

클라이언트에서 나는 와 같은 것을 통과하고 싶습니다.

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

내가 그랬을 때 오류가 발생했습니다 :

java.lang.IllegalStateException : @RequestMapping에서 @PathVariable [FirstNameIDS]를 찾을 수 없습니다

도움이 되었습니까?

해결책

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"; 
}
.

(스프링 MVC 4.0.1로 테스트 됨)

다른 팁

다음과 같이해야합니다 :

통화 :

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

컨트롤러 :

@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";
}
.

대괄호를 사용하려면 - []

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"; 
}
.

(스프링 MVC 4.1.1로 테스트)

@pathvariable 문자열 ID를 할 수 있으며 문자열을 구문 분석 할 수 있습니다.

그래서

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

in :

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top