[SPRING] Spring MVC 3 Controller로부터 만 문자열 메시지를 돌려 준다.
SPRINGSpring MVC 3 Controller로부터 만 문자열 메시지를 돌려 준다.
컨트롤러에서 문자열 메시지를 반환 할 수있는 방법을 말해 줄 수 있습니까?
난 그냥 컨트롤러 메서드에서 문자열을 반환하는 경우 jv 뷰 이름으로 mvc 봄.
해결법
-
==============================
1.@ResponseBody를 사용하여 컨트롤러에서 메서드 주석을 작성하십시오.
@ResponseBody를 사용하여 컨트롤러에서 메서드 주석을 작성하십시오.
@RequestMapping(value="/controller", method=GET) @ResponseBody public String foo() { return "Response!"; }
From : 15.3.2.6 @ResponseBody 주석을 사용하여 응답 본문 매핑 :
-
==============================
2.Spring 4에서 Controller가 @Controller 대신 @RestController로 주석을 달면 @ResponseBody annotation이 필요 없다.
Spring 4에서 Controller가 @Controller 대신 @RestController로 주석을 달면 @ResponseBody annotation이 필요 없다.
코드는
@RestController public class FooController { @RequestMapping(value="/controller", method=GET) public String foo() { return "Response!"; } }
@RestController에 대한 Javadoc을 찾을 수 있습니다.
-
==============================
3.그러나, @ 토마스는 절대적으로 옳습니다. 다른 방법이 있습니다 :
그러나, @ 토마스는 절대적으로 옳습니다. 다른 방법이 있습니다 :
@RequestMapping(value="/controller", method=GET) public void foo(HttpServletResponse res) { try { PrintWriter out = res.getWriter(); out.println("Hello, world!"); out.close(); } catch (IOException ex) { ... } }
제 1 방법이 바람직하다. 사용자 정의 컨텐츠 유형으로 응답을 보내거나 2 진 유형 (file, etc ...)을 리턴하려면이 메소드를 사용할 수 있습니다.
-
==============================
4.이것은 나중에이 질문을 찾을 수있는 사람들을위한 메모이지만 콘텐츠 유형을 변경하기 위해 응답을받을 필요가 없습니다. 다음은 그 일을하기위한 예입니다.
이것은 나중에이 질문을 찾을 수있는 사람들을위한 메모이지만 콘텐츠 유형을 변경하기 위해 응답을받을 필요가 없습니다. 다음은 그 일을하기위한 예입니다.
@RequestMapping(method = RequestMethod.GET, value="/controller") public ResponseEntity<byte[]> displayUploadedFile() { HttpHeaders headers = new HttpHeaders(); String disposition = INLINE; String fileName = ""; headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); //Load your attachment here if (Arrays.equals(Constants.HEADER_BYTES_PDF, contentBytes)) { headers.setContentType(MediaType.valueOf("application/pdf")); fileName += ".pdf"; } if (Arrays.equals(Constants.HEADER_BYTES_TIFF_BIG_ENDIAN, contentBytes) || Arrays.equals(Constantsr.HEADER_BYTES_TIFF_LITTLE_ENDIAN, contentBytes)) { headers.setContentType(MediaType.valueOf("image/tiff")); fileName += ".tif"; } if (Arrays.equals(Constants.HEADER_BYTES_JPEG, contentBytes)) { headers.setContentType(MediaType.IMAGE_JPEG); fileName += ".jpg"; } //Handle other types if necessary headers.add("Content-Disposition", , disposition + ";filename=" + fileName); return new ResponseEntity<byte[]>(uploadedBytes, headers, HttpStatus.OK); }
-
==============================
5.이건 어떤가요:
이건 어떤가요:
PrintWriter out = response.getWriter(); out.println("THE_STRING_TO_SEND_AS_RESPONSE"); return null;
이것은 나를 위해 작동합니다.
-
==============================
6.텍스트 / 일반 용도로 문자열 출력 :
텍스트 / 일반 용도로 문자열 출력 :
@RequestMapping(value="/foo", method=RequestMethod.GET, produces="text/plain") @ResponseBody public String foo() { return "bar"; }
from https://stackoverflow.com/questions/7672858/return-only-string-message-from-spring-mvc-3-controller by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring 부트 및 주석으로 ViewResolver를 구성하면 URI 오류가있는 HTTP 요청에 대한 매핑이 없습니다. (0) | 2018.12.12 |
---|---|
[SPRING] 스프링 / 자바 오류 : 네임 스페이스 요소 'annotation-config'... JDK 1.5 이상 (0) | 2018.12.12 |
[SPRING] 스프링 MVC 폼 데이터 바인딩을위한 String에서 Custom Object 로의 변환? (0) | 2018.12.11 |
[SPRING] HikariCP 용 Spring을 사용하여 데이터 소스를 설정하는 방법은 무엇입니까? (0) | 2018.12.11 |
[SPRING] 이것은 Tomcat에서 메모리 누출을 일으킬 가능성이 매우 높습니까? (0) | 2018.12.11 |