JSP/JSP 이용하기

[JSP] 카테고리 응용해서 메뉴판 만들기

h0-0cat 2023. 6. 8. 21:45
728x90

카테고리 응용해서 메뉴판 만들기

 

 

 Oracle 사용, MyBatis 사용

 

테이블명은 categoryex 

 

<--긁지않은개발자-->

 

대분류는

한식 중식 일식 양식  

 

그안에는

 

한식은 김치찌개, 된장찌개

중식은 짜장면, 짬뽕

일식은 돈까스, 초밥

양식은 스파게티, 스테이크 

 

이렇게 나눠서 만들어볼려고 한다.

 

 

대분류

<--긁지않은개발자-->

중분류

<--긁지않은개발자-->

 

이렇게해서 테이블은 만들어줬는데 

잘 만들어졌는지 확인해 봤는데 

이렇게 나와버렸다.

<--긁지않은개발자-->

(idx는 이것저것 연습해보고 삭제했더니 ... idx는 무시해도 된다.)

 

카테고리 같이 분류나눠서 만들때는 

정렬할때 

order by ref , seq;   

또는

order by ref desc, seq;  

이렇게 정렬해야 분류가 되서 나온다.

<--긁지않은개발자-->

 

<--긁지않은개발자-->

 

 

 

한식이 제일 위에 나오게 만들고 싶어서 

order by ref , seq;   

이렇게 정렬해줬다.

<--긁지않은개발자-->

이렇게 만들면 SQL은 완료


resources에 xml파일 2개 

 

db.properties파일 이용 

<properties resource="db.properties" />

 

typeAlias 별칭

<typeAlias type="kr.h.category.vo.CategoryVO" alias="CategoryVO" />  

사용자가 만든 

<property name="driver" value="${o.driverClassName}" />

<property name="url" value="${o.url}" />

<property name="username" value="${o.user}" />

<property name="password" value="${o.password}" />

<--긁지않은개발자-->

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	<properties resource="db.properties" />
	<typeAliases>
<typeAlias type="kr.h.category.vo.CategoryVO" alias="CategoryVO" />
	</typeAliases>
	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC" />
			<dataSource type="POOLED">
				<property name="driver" value="${o.driverClassName}" />
				<property name="url" value="${o.url}" />
				<property name="username" value="${o.user}" />
				<property name="password" value="${o.password}" />
			</dataSource>
		</environment>
	</environments>
	<mappers>
		<mapper resource="testMapper.xml" />
		
	</mappers>
</configuration>

 

<mapper resource="testMapper.xml" />

testMapper.xml 만들기 

<--긁지않은개발자-->

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="test">
	<select id="selectCategoryex" resultType="CategoryVO">
		SELECT * FROM categoryex ORDER BY ref, seq
	</select>
</mapper>

 

 

jsp파일 1개 (( JSTL 사용 ))

 

<--긁지않은개발자-->

<%
	List<CategoryVO> list = null;
	SqlSession sqlSession = null;
	try {
		sqlSession = CategoryApp.getSqlSessionFactory().openSession(false);
		//---
		list = sqlSession.selectList("test.selectCategoryex");
		request.setAttribute("list", list);

		//----
		sqlSession.commit();
	} catch (Exception e) {
		sqlSession.rollback();
		e.printStackTrace();
	} finally {
		sqlSession.close();
	}
	%>

 

JSTL 사용 (pom.xml에 추가해논 상태)

<--긁지않은개발자-->

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>

 

메뉴판안에 나올내용

<--긁지않은개발자-->

<div
		style="width: 300px; height: 500px; background-color: #FFE0B2; border: 1px solid #E65100; text-align: center;">
		<h2>메 뉴 판</h2>
		<c:if test="${empty list }">
			<h2 style="text-align: center;">등록된 항목이 없습니다.</h2>
		</c:if>
		<c:if test="${not empty list }">
			<c:forEach var="vo" items="${list }">
				<h2 style="font-size: 10pt; text-align: center;">
					<c:if test="${vo.lev>0 }">
						<c:forEach begin="1" end="${vo.lev }">
						&nbsp;&nbsp;&nbsp;
					</c:forEach>
					└>
				</c:if>
					${vo.item }
				</h2>
			</c:forEach>
		</c:if>
	</div>

 

실행 결과

<--긁지않은개발자-->

 

등록된 글이 없을때 실행시 밑에 처럼 나온다 .

<--긁지않은개발자-->

 

728x90