『 Form 데이터 송수신

​▷ @RequestParam에 의한 데이터 송수신


Command(@ModelAttribute)에 의한 데이터 송수신 


독자 데이터 바인드(@InitBinder)

 

 


 

 

 


 

 


전이되는 곳을 생략하는 경우

(View의 패스가 없음) 

​<소스코드>

​@Controller
public class AppointmentsController
   
    @RequestMapping("/sample")
    public ModelAndView doAction() {
   
        ModelAndView mav = new ModelAndView();
        model.addObject("message1", "aaaa");
        return mav;
    }
}

 

 

 


전이되는 곳을 생략하는 경우

(메서드 리턴값이 void)


<소스코드>


​@Controller
public class AppointmentsController
   
    @RequestMapping("/sample")
    public void doAction(ModelMap model) {
        model.addAttribute("message1", "aaaa");
    }

 

 


}

 


 

 

 



『 JSON형식 취득하는 경우(클라이언트측)

​<소스코드>

<script type="text/javascript">
$(document).ready(function(){
    $('#jsonOut1').click(function(){
        $.ajax({
            type: "POST",
            url : "${appUrl}/ajax/jsonOut1.html",
            data : {"cd": "syasin"},
            // 수신시의 미디어 타입
            dataType: "json",
            success:function(data){
                //TODO:
                alert(data);
            }
        });
    });
});
</script>
<ol>
    <li> <a href="${appUrl}/ajax/jsonOut1.html?cd=aaa">JSON형식 취득(GET으로 취득)</a></li>
    <li> <span id="jsonOut1">JSON형식 취득(jQuery을 이용하여 취득)</span></li>
</ol>


 

 

 

 

 


 

 

 



『 파일 다운로드(Writer/OutputStream사용)

​<소스코드>

​@Controller
public class DownloadController {
    // Writer를 사용하는 경우
    @RequestMapping(value="/downloadFile3", method = {RequestMethod.GET} )
    public void downloadFile3(Writer writer) throws IOException {
       
        writer.append("HelloWorld");
    }
}


 

 

 

 


 

 



『 파일 다운로드(ResponseEntity사용)

​<소스코드>

​@Controller
public class DownloadController {
   
    // ResponseEntity를 사용하는 경우
    @RequestMapping(value="/downloadFile2", method = {RequestMethod.GET} )
    public ResponseEntity<String> downloadFile2() throws IOException {
       
        // HTTP헤더 지정
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(new MediaType("application", "octet-stream"));
        headers.set("Content-Disposition", String.format("filename=\"%s\"", "sample.txt"));
       
        String data = "HelloWorld!";
        return new ResponseEntity<String>(data, headers, HttpStatus.OK);
       
    }
}



 

 

 


 

 

 

 

 



『 파일 다운로드(HttpServletResponse사용)

<소스코드>

​@Controller
public class DownloadController {
   
    // HttpServletResponse를 사용하는 경우
    @RequestMapping(value="/downloadFile1", method = {RequestMethod.GET} )
    public void downloadFile1(HttpServletResponse response) throws IOException {
       
        // HTTP 헤더 지정
        response.setContentType("application/octet-stream");
        response.setHeader("Content-Disposition", String.format("filename=\"%s\"", "sample.txt"));
       
        PrintWriter writer = response.getWriter();
        writer.append("HelloWorld");
    }
}

 

 

 

 

 


 


Form으로부터 값을 받아,

세션에 저장하는 경우 



<소스코드>


@Controller
public class SampleController {
 
    @RequestMapping(value="/sample", method={RequestMethod.POST})
    public ModelAndView sample(WebRequest request, @ModelAttribute LoginCommand command, BindingResult bindingResult) {
        // 바인드시 에러처리
        if(bindingResult.hasErrors()) {
            ・・・생략
        }
        // 세션에 데이터 저장
        request.setAttribute("loginUser", "hogehoge", RequestAttributes.SCOPE_SESSION);
       
        ModelAndView mav = new ModelAndView("/toView");
        return mav;
    }
}



 

 

 

+ Recent posts