2014년 3월 31일 월요일

Spring 인코딩 문제

POST 방식으로 한글을 날리는 경우 아래 설정으로 인해 깨지지 않지만 GET 방식으로 한글을 날리는 경우 깨지므로 script 에서 따로 인코딩을 해주던가 POST 방식으로 변경한다.
 
  encodingFilter
  
   org.springframework.web.filter.CharacterEncodingFilter
  
  
   encoding
   utf-8
  
     
 
        HTMLTagFilter
        
            egovframework.rte.ptl.mvc.filter.HTMLTagFilter
        
    
    
  encodingFilter
  *.do
 

2014년 3월 26일 수요일

Spring 파일 업로드

설정 파일 부터

     
        
        
    
    
    

가장 많이 사용 되는 CommonsMultipartResolver 를 사용해본다. jsp 파일 내용은 간단함
/*
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>





Insert title here






	
*/
컨트롤러 내용은 더 간단함
package egovframework.test.fileupload;

import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.util.FileCopyUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

@Controller
public class FileUploadController {
	
	@RequestMapping(value="/test/fileUploadView.do")    
    public String fileUploadView(ModelMap model, HttpServletRequest request) throws Exception {
   		
    	return "fileupload/upload";
    }
	
	@RequestMapping(value="/test/fileUpload.do")    
    public String fileUpload(@RequestParam("file") MultipartFile file, ModelMap model, HttpSession session) throws Exception {
		    	
		String uploadPath = session.getServletContext().getRealPath("/upload/");
		//실제 디플로이되는 폴더의 root path를 따온다

		System.out.println("UPLOAD_PATH : "+uploadPath);
		
		FileCopyUtils.copy(file.getInputStream(), new FileOutputStream(uploadPath+"/"+file.getOriginalFilename()));
                //upload 폴더안에 등록하겠다는 말
		
    	return "fileupload/upload";
    }

    @RequestMapping(value="/test/ajaxGetFileUrlList.do")
    @ResponseBody
    public List ajaxGetFileUrlList(ModelMap model) throws Exception {
    	
    	
    	return new ArrayList();
    } 
}