[SPRING] 웹 페이지에 PDF 표시
SPRING웹 페이지에 PDF 표시
Spring MVC를 사용하고 있는데, 로컬에서 웹 페이지로 PDF 파일을 표시하고 싶다. 이 작업을 수행하기 위해 컨트롤러에 어떻게해야하는지 모르겠습니다. 나는이 질문에서 ResponseEntity
최신 정보:
이것은 내가 지금까지 시도한 것이다 :
<a href="#" onClick="test();" >test</a>
function test(){
$.ajax({
type: "POST",
url: "../admin/module/id.do",
data: '{ file_id }',
success: function(response){
alert(response);
}
});
}
그리고 컨트롤러 :
@RequestMapping( value = "/admin/module/id", method = RequestMethod.POST )
public ResponseEntity<byte[]> getPDF( @PathVariable( "id" )
int id, Model model )
{
System.out.println( "test" );
Path path = Paths.get( "C:/Users/FORSAK~1/AppData/Local/Temp/spring_tutorial.pdf" );
byte[] contents = null;
try
{
contents = Files.readAllBytes( path );
}
catch( IOException e )
{
e.printStackTrace();
}
HttpHeaders headers = new HttpHeaders();
headers.setContentType( MediaType.parseMediaType( "application/pdf" ) );
String filename = "spring_tutorial.pdf";
headers.setContentDispositionFormData( filename, filename );
ResponseEntity<byte[]> response = new ResponseEntity<byte[]>( contents, headers, HttpStatus.OK );
return response;
}
경고 (응답)가 작동하지 않으며 또한 System.out.println ( "test");
방화 광에서 발생한 오류는 "NetworkError : 500 내부 서버 오류 - http : // localhost : 8080 / ThesisProject / admin / module / id.do"입니다.
스택 트레이스 :
java.lang.IllegalStateException: Could not find @PathVariable [id] in @RequestMapping
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter$ServletHandlerMethodInvoker.resolvePathVariable(AnnotationMethodHandlerAdapter.java:857)
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolvePathVariable(HandlerMethodInvoker.java:710)
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveHandlerArguments(HandlerMethodInvoker.java:360)
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:171)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:444)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:432)
....
해결법
-
==============================
1.시작하려면 예외는 매우 간단합니다.
시작하려면 예외는 매우 간단합니다.
java.lang.IllegalStateException: Could not find @PathVariable [id] in @RequestMapping
그리고 당신이 가진 것은
@RequestMapping( value = "/admin/module/id", method = RequestMethod.POST )
경로 변수를 선언하지 않고 특정 경로 만 선언합니다. id는 요청 매개 변수로 전달됩니다.
data: '{ file_id }',
그건 그렇고 잘못 됐어, 내가해야한다고 생각해.
data: { id: file_id },
대신 @RequestParam (value = "id") 매개 변수에 주석을 달아주세요.
from https://stackoverflow.com/questions/19625271/display-pdf-in-a-webpage by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring 4 MVC에서 컨트롤러를 내부 클래스로 중첩 할 수 있습니까? (0) | 2019.05.22 |
---|---|
[SPRING] Spring Webflux Reactive WebClient를 사용하여 연결 시간 제한 설정 (0) | 2019.05.22 |
[SPRING] com.thoughtworks.xstream.converters.ConversionException (0) | 2019.05.22 |
[SPRING] Spring Boot Plugin에서 시스템 속성 정의하기 (0) | 2019.05.22 |
[SPRING] 인터페이스는 IoC / DI의 @Component 주석으로 주석 처리됩니다. 그 이유는 무엇일까요? (0) | 2019.05.22 |