상품 카테고리별 모아보기

기여·2024년 8월 21일
0

소소한 개발팁

목록 보기
79/103

상품 테이블 & Vo에 category (varchar/String) 필드 추가한다.
Mapper

//category별 모아보기
		@Select("SELECT * FROM products "
				+ "WHERE category = #{category} "
				+ "ORDER BY product_code DESC")	
		List<PrdVo> prdListByCtgr(PrdVo vo);

Ctrl

@GetMapping("prdListByCtgr") //category별 모아보기
	public String prdListByCtgr(Model model, PrdVo vo) {
		System.out.println("prdList");
		
		List<PrdVo> li=prdSvc.prdListByCtgr(vo);
		
		model.addAttribute("li", li);
		model.addAttribute("lisize", li.size());
		
		if (!li.isEmpty()) {
			model.addAttribute("ctgr", li.get(0).getCategory()); //첫째 결과의 category 대표로 출력
		}
		
		return "prd/prdListByCtgr";
	}

전체 리스트에는 경로 생성

        <div>
        	<input type="hidden" th:value="${m.category}">
			<a th:text="'#' + ${m.category}" type="button" class="subbtnsmall" 
			th:href="@{/prd/prdListByCtgr(category=${m.category})}"></a>
		</div>

카테고리별 리스트

<div style="margin-bottom: 15px;"
th:utext="'카테고리 <strong>#' + ${ctgr} +'</strong>에 상품 <strong>'+ ${lisize} + '건</strong>이 있습니다.'">
</div>
<!-- 그 다음은 반복문 -->

상품 추가 시에는,
Mapper sql문에 #{category} 추가하고,
Ctrl:

vo.setCategory(request.getParameter("category"));

추가 양식:

	<tr>	
		<th>category</th>
		<td>		
			<select name="category" required>                 
                 <option value="키링">키링</option>
                 <option value="와펜">와펜</option>
                 <option value="인형">인형</option>
                 <option value="브로치핀">브로치핀</option>
             </select>
		</td>
	</tr>

연습 삼아 제품당 카테고리 키값 쌍을 하나씩만 부여했다.
추후에는 tag(hashtag 같은) 추가해서 배열로도 처리해봐야겠지..

profile
기기 좋아하는 여자

0개의 댓글