Spring

스프링 : $getJSON, 팝업, encodeURI vs encodeURIComponent

흰색기린 2021. 11. 16. 01:52

즉시 실행 함수

<script>
      $(document).ready(function(){
            (function(){
                  
            });
      })
</script>

함수 표현은 함수를 정의하고, 변수에 함수를 저장하고 실행하는 과정을 거친다.

BUT, 즉시 실행 함수는 함수를 정의하고 바로 실행하는 이러한 과정을 거치지 않음! 바로 호출한다


$.getJSON 사용법

jQuery에서 getJSON()함수를 통해서 json 파일을 읽어올 수 있다.

사용 방법 jQuery.getJSON( url [, data] [, success] )

      $(document).ready(function(){
            (function(){

                  var bno = '<c:out value="${board.bno}"/>';

                  $.getJSON("/board/getAttachList", {bno: bno},function(arr){
                        console.log(arr);
                  });// end getjson
            })(); // end function
      })

/board/getAttachList의 url에 있는 data값을 가져올 수 있다.

bno값들이 찍히는 것을 확인.


button 기본 속성 submit

button type이 submit이 아닌데도 list로 단순이동 하려고 했는데, submit으로 작동한다.

 

default값이 submit인 것 같애서 찾아본 결과 submit이 맞았다.

 

고로 단순 이동하는 버튼은 type을 "button"으로 명시해두는것이 좋은 습관이다.


java.nio.file.NoSuchFileException

첨부파일 할때 오류가 발생했음...

이미지의 이름에 +가 들어가면 파일을 찾지 못했다.


팝업

      function showImage(fileCallPath){
            let url = "/display?fileName=" + fileCallPath;
            let title = "attachPopup";
            let status = "toolbar=no,scrollbars=no,resizable=yes,status=no,menubar=no";
            window.resizeTo(800, 800);
            window.open(url,title,status);
      }

resizeTo를 이용해서 팝업의 크기를 저장하고

status를 활용해서 팝업의 설정들을 끄고 킬 수 있다.


encodeURIComponent() vs encodeURI

encodeURI는 알파벳, 0~9의 숫자, ; , / ? : @ & = + $ #    - _ . ! ~ * ' ( ) 를 제외한 문자를 인코딩(이스케이프 처리)

encodeURIComponent는 알파벳,0~9의 숫자 - _ . ! ~ * ' ( ) 를 제외한 문자를 이스케이프 처리

 

파라미터 값에 & 등의 특수한 기능을 하는 문자가 들어가는 경우 encodeURI로 전체를 인코딩하는 경우 문제가 생길 수 있으므로 파라미터가 포함되지 않은 path부분은 값자체만 넘겨주고 encodeURIComponent를 사용해서 인코딩 하는 방법 추천.

 

encodeURI를 사용하면 이미지 이름에 1+1 이런식으로 "+" 특수 문자가 들어가게 되면 파일을 못찾는 경우가 있을수 있다.


동적 태그를 만들때 주의점

                  // ul 태그 만들기 없으면 안보여줬음
                  $(".uploadPreview").html("<ul></ul>");

.html을 이용하면 안에 있는 모든 태그가 없어지고 html로 바뀌게 때문에 이런식으로 동적으로 먼저 만들고

그 다음 동적 태그를 이용하면 된다.