스프링 MVC를 기반으로하는 REST 서비스가있다.스프링 MVC 요청 매핑이 전달 중임
이 내 코드입니다 :
public class SitesController {
@RequestMapping(value="/rest/sites/{id}", method=RequestMethod.GET)
@ResponseBody
public SiteDTO getSite(@PathVariable String id) {
Integer siteId = Integer.parseInt(id);
Site site = cms.getSite(siteId);
SiteDTO siteResult = new SiteDTO(site);
return siteResult;
}
@RequestMapping(value="/rest/sites", method=RequestMethod.GET)
public SitesResult getSites(@RequestParam Integer companyId) {
Collection<Site> sites = cms.getSites(cms.getCompany(companyId));
SitesResult sitesResult = new SitesResult(sites);
return sitesResult;
}
}
이
(I 문제에 적용되지 않는 몇 가지 코드를 생략) 나는 그것이 내가 기대하는 데이터를 반환하는 URL /rest/sites/1
에 갈 때, 그러나 내가 /rest/sites?companyId=1
에 갈 때 나는 404 페이지를 얻는다 : HTTP Status 404 - /rest/rest/sites
.
로그는 getSites
기능의 코드가 실행되는 것을 보여주고 있지만, 그 후 로그는 다음 보여주고있다 : org.springframework.web.servlet.view.JstlView Forwarding to resource [rest/sites] in InternalResourceView 'rest/sites'
은 왜 재 대신 실행?
UPDATE 문제를 발견. 내 방법 위에 @ResponseBody
이 없기 때문에 발송자가 내 요청을 전달했습니다. 이한다면 나도 몰라
public SitesResult getSites(@RequestParam("companyId") Integer companyId) {
더 자세한 정보 here, 키 것은으로
방법 getSites 선언 할 수있다 ... 이것은 내 부분에 그냥 추측 If the method is annotated with @ResponseBody, the return type is written to the response HTTP body. The return value will be converted to the declared method argument type using HttpMessageConverters.
합니까? –