2016-07-19 1 views
0

봄에 GET 웹 서비스 내부에서 사용되는 매개 변수의 이름을 바꿀 수 있습니까? 다음 예제 search.limitResults처럼 :@RestController에서 compex @RequestParams의 속성 이름을 지정하는 방법은 무엇입니까?

localhost:8080/firstname=test&search.limitResults=10

당신은 아이디어를 얻을. 이것이 성취 될 수 있습니까?

@RestController 
public class MyServlet { 
    @RequestMapping(value = "/", method = RequestMethod.GET) 
    private String test(RestParams p) { 

    } 
} 

@XmlRootElement 
@XmlAccessorType(XmlAccessType.FIELD) 
public class RestParams { 
    private String firstname; 
    private String lastname; 

    //is that possible to nest? 
    @XmlElement(name = "search") 
    private MyComplexSearch search; 
    public MyComplexSearch getSearch() {return search;} 
    public void setSearch(MyComplexSearch) {this.search = search;} 

    @XmlRootElement(name = "search") 
    @XmlAccessorType(XmlAccessType.FIELD) 
    public class MyComplexSearch { 
     private int limitResults; 
     //some more 
    } 
} 

요청은 위 코드에서 작동하지 않습니다. 대신 객체 이름으로 myComplexSearch을 사용해야합니다.

localhost:8080/firstname=test&myComplexSearch.limitResults=10

어떻게 자바 클래스 자체의 이름을 변경하지 않고, 입력 속성의 이름을 다시 정의 할 수 있습니까?

+0

'get/setSearch'가있는 경우 작동합니다. –

+0

나는 실제로 이런 식으로 이름을 붙 였지만 (위 편집 참조), 여전히 같은 문제입니다. – membersound

+0

실제로이 방법이 실제로 나타난 것처럼 작동한다면 그냥 작동해야합니다. 그렇지 않은 경우 여기에 제시된 방법을 사용하지 않거나 잘못 구성된 것입니다. –

답변

0

중첩 클래스는 정적이어야합니다.

public static class MyComplexSearch

관련 문제