2011-11-18 2 views
0


간단한 mkc를 사용하여 간단한 CRUD 컨트롤러 및보기를 만들려고합니다.
내가 수 있어요 : 나는 양식을 사용하여 요청을 보내려는 경우
문서 목록 문서 업로드 삭제 된 문서Spring3 MVC - 동일한 컨트롤러에서 CRUD를 올바르게 구현하는 방법은 무엇입니까?


받기, 내가 다운로드 문서를 구현하려면 어떻게
?
모든 문서에 사용해야합니까? 또 다른 것은 - MVC 프레임 워크를 올바르게 사용하고 있습니까?

<html> 
<body> 

<!-- the list: --> 
<c:forEach items="${documentList}" var="documentRow"> 
    <Generate table here> 

<!-- upload part --> 
<form:form modelAttribute="uploadDocument" method="post" enctype="multipart/form-data"> 
    <form:input path="fileData" type="file"/> 
    <input type="hidden" id="actUploadocument" name="action" value="uploadDocument" /> 
</form:form> 

<!-- delete part --> 
<form:form method="post" enctype="multipart/form-data"> 
    <input type="hidden" id="documentId" value="" /> 
    <input type="hidden" id="actUploadocument" name="action" value="deleteDocument" /> 
</form:form> 

</body> 
</html> 

CRUD 컨트롤러는 무엇입니까?

@Controller 
@RequestMapping("/documents") 
public class DocumentsController 
{ 
@Autowired 
private MainService mainService; 

@RequestMapping(method = RequestMethod.GET) 
public String listDocuments(Model model) { 
    List<Document> docs = mainService.getAllDocuments();   
    model.addAttribute("documentList",docs); 
    model.addAttribute(new UploadDocument()); 
    return "admin/documents"; 
} 

@RequestMapping(method = RequestMethod.POST , params="action=uploadDocument") 
public String uploadDocument(UploadDocument uploadDocument){ 
    savedocument(uploadDocument); 
    return "redirect:/admin/documents.do"; 
} 

@RequestMapping(method = RequestMethod.POST , params="action=removeDocument") 
public String removeDocument(@RequestParam(value="documentId", required=true) String documentId){ 
    savedocument(documentId); 
    return "redirect:/admin/documents.do"; 
} 

@RequestMapping(method = RequestMethod.POST , params="action=downloadDocument") 
public String downloadDocument(@RequestParam(value="documentId", required=true) String documentId, 
          HttpServletRequest request,HttpServletResponse response) { 
    writeDocToResponse(documentId,response); 
    return null; 
} 
+0

컨트롤러가 괜찮아 보입니다. 그것은 기본적으로 맛과 종교에 이르기까지이지만 이것은 나를 위해 일합니다. –

+0

보기 측면 (JSP)에서 다운로드 문서의 모범 사례는 무엇입니까? – user648026

답변

0

는 기본적으로 모든 당신은 파일 다운로드 대화 상자첨부로 HTTPresponce를 식별하기 위해 설정된 응답 특성이다 열어야합니다. 예를 들어 :

response.reset(); 
response.setContentType(getYourFileContentType()); 
response.setHeader("Content-Disposition","attachment; filename=\""+getYourFileName()+"\""); 

은 그럼 당신은 파일을 스트리밍 서비스 메서드를 호출 할 수 있습니다.

+0

또한 get 메소드 핸들러 여야합니다! POST를 사용하여 FORM 데이터를 컨트롤러로만 보냅니다. –

+0

Monsieur에게 감사드립니다. 응답에 객체를 쓰는 법을 알고 있습니다. ** writeDocToResponse ** 메소드는이 작업을 수행합니다. – user648026

관련 문제