2013-07-04 4 views
3

주석없이 내 MVC 응용 프로그램 용으로 Spring 3.x를 사용하고 있습니다. 데이터 만보기를 원합니다. 나는 그것을 google했고 @ResponseBody를 사용하는 것이 가능하다는 것을 발견했다. 하지만 주석을 사용하고 싶지 않습니다. 어떻게 스프링을 말할 수있는 것은 데이터가 주석이없는 뷰가 아니라는 것입니다. 내 샘플 코드는 아래에 주어진다.스프링 컨트롤러에서 주석없이 데이터를 가져 오는 방법

public class ShowGraphController extends AbstractController { 

    private JdbcUserDao userDao; 

    public void setUserDao(JdbcUserDao userDao) { 
     this.userDao = userDao; 
    } 

    protected ModelAndView handleRequestInternal(HttpServletRequest request,HttpServletResponse responce) throws Exception {{ 
     return new ModelAndView("want it retun as a data not a view name only"); 
    } 
} 
+0

왜 주석을 사용하지 않으려는? – NimChimpsky

+0

나는 또한이 질문에 대한 답을 알고 싶다. 아마도 좋은 자습서에 대한 링크 –

+0

컨트롤러가 컨트롤러로 정의 된 이유는 무엇입니까? – NimChimpsky

답변

1

데이터를 말할 때 JSON이라고 생각하십니까?

ModelAndView 스타일을 사용해야하는 경우 HttpServletResponse을 직접 처리하고 null을 반환하십시오.

+0

네가 맞습니다. 그것의 JSON 데이터. – krish

+0

Jackson의'ObjectMapper.writeValue'와'HttpServletResponse.getPrintWriter()'를 사용하십시오. –

1

그것은 봄 3와 같은 비트 복잡한, 당신은 이상적으로 ResponseBody 주석을 사용한다. 이 클래스 ResponseEntity을 보시고, 이것은 귀하의 목적에 유용 할 수 있습니다. Spring의 샘플 코드 doc :

@RequestMapping("/handle") 
public ResponseEntity<String> handle() { 
    HttpHeaders responseHeaders = new HttpHeaders(); 
    responseHeaders.set("MyResponseHeader", "MyValue"); 
    return new 
    ResponseEntity<String>("Hello World", responseHeaders, HttpStatus.CREATED); 
} 
1

가장 쉬운 방법은 @ResponseBody 사용하는 것입니다,하지만 당신은 주석을 사용하지 않으려면, 당신은 자신을 응답을 채울 수 있습니다 :

protected void handleRequestInternal(HttpServletRequest request,HttpServletResponse response) throws Exception { 
    response.getWriter().println("want it retun as a data not a view name only"); 
} 
관련 문제