item 업로드시 file업로드를 하면 해당 file의 이름을 String imgname으로 받아서 세팅해줌.


MultipartFile은 파일을 전송하기 위한 클래스

script에서 전송할때도 해야함.


controller에 디렉토리 변수도 선언하고 @Value로 지정해주자.

fileupload 유틸도 하나 받아야함.

imgname은 안들어와있으니 설정을 추가로 해주고 레지스터.
앗, 추가가 안돼? -> 원래 imgdir은 리소스를 사용하기 위해서 지정했던 경로다.

리소스를 추가할 땐 위의 경로고, 파일을 업로드 할때는 아래 경로를 써야한다.


아래처럼 부족하게 된다.
이미지를 교체하는 경우와, 교체하지 않는 경우를 나눠서 해야한다.
디테일 화면에서 정보를 기본적으로

img + 아래 파라미터를 뿌려준다. (hidden type이든 뭐든 name과 value로 뿌려줌)

수정이 있는 경우(hidden제외 name, price + img파일) img파일 빼고 반영을 다 시키고, getImg로 업로드된 파일(없는경우포함) mf에 저장을 하고 이름을 imgname에 저장.
파일이 있는 경우 imgname을 다시 셋팅하고 db에 수정 후 다시 올려준다.
파일이 없는 경우 img가 없더라도 detail jsp에 기존 정보(imgname)이 뿌려져 있으므로 그걸로 그대로 사용. 파일 업데이트는 없음.
업데이트를 할 때는 생성자(id, name, price, imgname, rdate)만 있으면 되고 img가 뿌려져 있건 없건 상관 없음. img는 디렉토리에 저장이 되어있고 imgname을 통해 img를 불러오는 것임.

이런 경우 파일은 올라갔는데 modify가 안되는 경우도 있다. 중요한것에 따라서 정하면 됨.
의문점 : 파일 이름이 겹치는 경우? 파일을 새로 업로드 하는 경우 기존의 파일은??
-> 지금은 안할게~

함수로 따로 안만들고 location.href="/"로 controller로 요청을 보내도 됨.


https://mybatis.org/mybatis-3/ko/dynamic-sql.html

parameterType이 markerSearch



ms에 정보를 담아서 선택 후에도 방금 선택, 입력한 값이 남아있도록 하자.