1.mybatis mysql 작성
위와같은 경로에서 PetArticle_SQL_mysql을 연뒤 수정하자
PetArticle_SQL_mysql 작성
<?xml version="1.0" encoding="UTF-8"?><!--
수정일 수정자 수정내용
========= ======= =================================================
2011.09.21 서준식 NTT_ID를 IDGENT서비스를 사용해서 생성하므로 selectMaxNttId문은 실제 사용하지 않음
-->
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="ArticleDAO">
<resultMap id="boardlist" type="pet.com.bbs.service.BoardVO">
<result property="nttId" column="NTT_ID"/>
<result property="bbsId" column="BBS_ID"/>
<result property="nttCn" column="NTT_CN"/>
<result property="nttSj" column="NTT_SJ"/>
<result property="frstRegisterId" column="FRST_REGISTER_ID"/>
<result property="frstRegisterPnttm" column="FRST_REGIST_PNTTM"/>
</resultMap>
<select id="Articlelist" parameterType="pet.com.bbs.service.BoardVO" resultMap="boardlist">
SELECT NTT_ID,BBS_ID,NTT_CN,NTT_SJ,FRST_REGISTER_ID,FRST_REGIST_PNTTM
FROM COMTNBBS
WHERE BBS_ID = #{bbsId}
</select>
<insert id="Articleinsert" parameterType="pet.com.bbs.service.BoardVO">
INSERT INTO COMTNBBS
(NTT_ID,BBS_ID,NTT_SJ,NTT_CN,FRST_REGISTER_ID,FRST_REGISTER_PNTTM)
VALUES (#{nttId},#{bbsId},#{nttSj},#{nttCn},#{frstRegisterId},SYSDATE())
</insert>
</mapper>
간략하게 내용을 살펴보자면 namespace는 xml 에 접근할 클래스? 라고보면된다
그리고 resultMap은 BoardVo에 변수(property)들과 db칼럼들을 맵핑한 결과를 만드는 어떠한 객체라고 생각해야한다.
<select id="Articlelist" parameterType="pet.com.bbs.service.BoardVO" resultMap="boardlist">
SELECT NTT_ID,BBS_ID,NTT_CN,NTT_SJ,FRST_REGISTER_ID,FRST_REGIST_PNTTM
FROM COMTNBBS
WHERE BBS_ID = #{bbsId}
</select>
id - 접근할 이름
parameterType - 파라미터로 넣어줄 객체에 타입
resultMap - sql실행결과 나온 값을 넘겨줄 Map
<insert id="Articleinsert" parameterType="pet.com.bbs.service.BoardVO">
INSERT INTO COMTNBBS
(NTT_ID,BBS_ID,NTT_SJ,NTT_CN,FRST_REGISTER_ID,FRST_REGISTER_PNTTM)
VALUES (#{nttId},#{bbsId},#{nttSj},#{nttCn},#{frstRegisterId},SYSDATE())
</insert>
select 문과 속성 내용들은 같다
이렇게 xml을 만든뒤 selectServiceimpL로 돌아가자
ArticleServiceimpL.java
package pet.com.bbs.service.impl;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import pet.com.bbs.service.ArticleService;
import pet.com.bbs.service.BoardVO;
import pet.com.sql.CommonDAO;
@Service("ArticleService")
public class ArticleServiceimpL implements ArticleService{
@Resource(name = "commonDAO")
private CommonDAO commondao;
@Override
public List<BoardVO> Articlelist(BoardVO boardvo) {
List<BoardVO> boardlist = commondao.selectList("ArticleDAO.Articlelist",boardvo);
return boardlist;
}
@Override
public void Articleinsert(BoardVO boardvo) {
}
}
ArticleServiceimpL에서 commondao를 불러온뒤 commondao가 상속받은 EgovComAbstractDAO 클래스 안에 있는
selectList 메소드를 사용하여 쿼리Id 와 파라미터값인 boardvo를 보내준다
이제 컨트롤러에서 완성시킨 서비스 로직을 불러온다
ArticleController.java
@Controller
@SuppressWarnings({ "rawtypes", "unchecked", "static-access" })
public class ArticleController {
@Resource(name = "ArticleService")
private ArticleService articleservice;
@RequestMapping("/pet/bbs/Articlelist.do")
public String Articlelist(@ModelAttribute("searchVO") BoardVO boardVO, ModelMap model) throws Exception{
System.out.println("--------ssssssss--------------");
System.out.println("----------------------"+boardVO.getBbsId());
List<BoardVO> boardlist = articleservice.Articlelist(boardVO);
model.addAttribute("result",boardlist);
return "pet/bbs/Articlelist";
}
}
@Resource로 Serviceimpl에서 설정한 @Service이름을 불러온뒤 articleservice를 선언하자
그후 model.addAttribute 를 사용하는데
첫번째 파라미터는 "result" 로 jsp에 내용을 전달할때 어떤 이름으로 전달하냐라는 파라미터이고
두번째 파라미터는 어떤 값을 전달하냐라는것이다. 우리는 articleservice로 게시판에 목록을 가져오므로
그 값을 두번째 파라미터로 저장해주면 된다.
2.LIST 수정
Articlelist.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<div class="container">
<div class = "row">
<table class="table table-striped" style="text-align:center; border:1px solid #dddddd">
<thead>
<tr>
<th style="background-color: #eeeeee; text-align: center;">번호</th>
<th style="background-color: #eeeeee; text-align: center;">제목</th>
<th style="background-color: #eeeeee; text-align: center;">작성자</th>
<th style="background-color: #eeeeee; text-align: center;">작성일</th>
</tr>
</thead>
<tbody>
<c:forEach items="${result}" var="resultInfo" varStatus="status">
<tr>
<form name=subForm action="<c:url value='/pet/bbs/Articledetail.do'/>" method='post'>
<input name="nttId" type="hidden" value="<c:out value="${resultInfo.nttId}"/>">
<input name="bbsId" type="hidden" value="<c:out value="${resultInfo.bbsId}"/>">
<td><c:out value='${resultInfo.nttId}'/></td>
<td><c:out value='${resultInfo.nttSj}'/></td>
<td><c:out value='${resultInfo.frstRegisterId}'/></td>
<td><c:out value='${resultInfo.frstRegisterPnttm}'/></td>
</form>
</tr>
</c:forEach>
</tbody>
</table>
<div class="btn btn-primary pull-right">
<span><a href="<c:url value='/adm/bbs/insertArticleView.do?bbsId=${searchVO.bbsId}' />">글쓰기</a></span>
</div>
</div>
</div>
</body>
</html>
위와 같이 jsp를 수정하자
여기서 나오는 <c:foreach> ,<c:url> ,<c:out>은 jstl 문법으로 간략히 소개하자면
<c:forach>는 items 에서 받은 값(controller에서 'result'로 이름을 명명한뒤 보내준값 ) 을 var(resultInfo )라는 값으로
하나씩 돌려주며 items값이 다 나올때가지 반복해준다
아래와 같은 model로 attribute를 추가할때 파라미터 첫번째 이름인 result를
jsp에서 ${변수명} 즉 ${result}로 받을수있다.
또한 스프링에서는 아래와같이 @ModelAttribute로 ("이름") 을 설정한 것도
JSP에서 그대로 전달되어 ${searchVO} 처럼 쓸수있다.
<c:url>태그는 URL에 자동으로 COntext path를 붙여주는 태그이며 <c:out>은 어떤 값을 입력받던지 간에 콘솔이 아닌 화면에 문자열로 바꾸어서 보여주는 역할이다.
이제 리스트가 화면에 제대로 나오는지 확인해보자
DB comtnbbs테이블 안에 2개의 로우를 저장해본뒤 서버를 실행하자
우리가 원하는 DB내용 목록들을 잘 나타내어준다
다음 글에서는 글쓰기 과정을 설명할것이다~
끝~~
'자바웹프로그래밍 > 전자정부프레임워크' 카테고리의 다른 글
전자정부프레임워크를 이용 쇼핑몰 만들기 #5-insert (1) | 2020.04.26 |
---|---|
전자정부프레임워크를 이용 쇼핑몰 만들기 #3 (2) | 2020.04.25 |
전자정부프레임워크를 이용 쇼핑몰 만들기 #2 (0) | 2020.04.25 |
전자정부프레임워크를 이용 쇼핑몰 만들기 #1 (0) | 2020.04.15 |
전자정부프레임워크 뼛속까지 알아보자#5 -(jstl) (0) | 2020.04.06 |
댓글