http://localhost:8090/gami/mypage/myhome/myPageMyHomeList.do

String.valueOf()는 정수 값을 문자열로 변환
404Error
이미지 요청 처리 (imagesReviews.do)
컨트롤러에서 reviewNo, imageName을 받아 실제 이미지 경로 접근
예: C:\\GAMI\\review_image\\1\\sample.jpg
사이즈 조정 후 브라우저에 전송
이미지 경로에 실제 파일명만 있어야 하는데,
잘못해서 URL 전체를 넣은 것이 문제였고,
이를 files[0].getName() 으로 정확히 파일명만 반환하게 바꿔서 해결
1.나의리뷰 보기페이지
@RequestMapping(value = "/myReviewList.do", method = RequestMethod.GET)
public ModelAndView myPageReviewList(HttpSession session, HttpServletRequest request, HttpServletResponse response)
throws Exception {
MemberDomain memberDomain = (MemberDomain) session.getAttribute("member");
String memberId = memberDomain.getMemberId();
Map<String, Object> myReviewMap = reviewService.**selectReviewList**(memberId)
<!-- 나의 리뷰글 조회 -->
<select id="**selectReviewList**" parameterType="String" resultMap="ReviewResultMap">
select r.reviewNo, r.memberId, r.productNo, p.productName, r.reviewContents,
r.reviewUpdated, r.reviewStarAvg, r.reviewStarDurability, r.reviewStarPrice,
r.reviewStarDesign, r.reviewStarDelivery
from review r
join product p on r.productNo = p.productNo
where r.memberId = #{memberId}
</select>
2.ReviewDoamin의 리뷰 게시글에서 리뷰번호(파일명 ex.1, ex.2 …)를 꺼내온다.
// 이미지 출력
//ReviewDoamin의 리뷰게시글에서 리뷰번호를 꺼냄
List<ReviewDomain> reviewList = (List<ReviewDomain>) myReviewMap.get("myReviewList");
List<ImageDomain> imageList = new ArrayList<>();
for (ReviewDomain review : reviewList) {
String reviewImageName = **reviewImageName**(review.getReviewNo());//메서드(파일명가져옴)
private 메서드 reviewImageName 접근
//리뷰번호에 맞는 이미지 파일명
private String **reviewImageName**(int reviewNo) {
File reviewFolder = new File(REVIEW_IMAGE_SERVER, String.valueOf(reviewNo));
System.out.println("나 이미지파일명 찾는 컨트롤러인데 파일 경로야 = " + reviewFolder.getPath()); // 경로 확인
if (reviewFolder.exists() && reviewFolder.isDirectory()) {
File[] files = reviewFolder.listFiles();
if (files != null && files.length > 0) {
System.out.println("그리고 내가 찾은 파일 이름이야 = " + files[0].getName()); // 찾은 이미지 확인
//파일명만 반환해야 함
return files[0].getName(); //sample.jpg
}
}
return null; // 이미지가 없으면 null 반환
} //reviewImageName END
3.다시 돌아와서 Map에 추가
// 이미지가 있으면
if (reviewImageName != null) {
ImageDomain image = new ImageDomain();
image.setArticleNO(review.getReviewNo()); // 리뷰 번호
image.setImageFilename(reviewImageName); // 이미지 파일명
imageList.add(image);
}
}
//Map에 추가
myReviewMap.put("imageList", imageList);
ModelAndView mav = new ModelAndView("/review/myReviewList");
mav.addObject("myReviewMap", myReviewMap); // "reviewMap"라는 이름으로 데이터를 JSP로 전달
return mav;
} //myPageReviewList END