Spring Framework-4

유호준·2021년 3월 13일
0

Spring Framework

목록 보기
5/21
post-thumbnail

📄 글을 작성을 했으니 이제는 불러와보자!


board.jsp 수정

JSP의 taglib을 사용하기 위하여 맨 위에 아래 코드를 추가합니다.

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

table 태그 안에 정적 데이터들을 삭제하고 이와 같이 작성합니다.

<table class="table table-bordered" id="dataTable" width="100%" cellspacing="0">
	<thead>
		<tr>
			<th>글 번호</th>
			<th>제목</th>
			<th>작성자</th>
			<th>생성 날짜</th>
		 </tr>
	</thead>
	<tfoot>
		<tr>
			<th>글 번호</th>
			<th>제목</th>
			<th>작성자</th>
			<th>생성 날짜</th>
		</tr>
	</tfoot>
	<tbody>
		<c:forEach items="${postList}" var="post">
        	<tr>
 			<td>${post.id}</td>
			<td>${post.title}</td>
			<td>${post.name}</td>
   			<td>
            			<fmt:formatDate value="${post.created_date}" pattern="yyyy-MM-dd"/>
            		</td>
            	</tr> 			
		</c:forEach>
	</tbody>
</table>

${모델이름}은 모델을 출력합니다. 여기서 표현하는 모델이 무엇인지는 밑에서 나옵니다.

<c:forEach> 태그는 반복문입니다. 위의 코드는 postList모델을 post변수에 넣으며 반복하는 태그입니다.

<fmt:formatDate> 태그는 Date의 형식을 지정하며 문자열로 변환하는 태그입니다. 위의 코드에서는 2021-03-14 이와 같은 형식으로 나옵니다.


PostMapper 클래스와 PostMapper.xml 수정

PostMapper 클래스

public interface PostMapper {
    public void save(PostVO postVO);
    public List<PostVO> findAll();
}

PostMapper.xml

<mapper namespace="ac.kr.smu.mapper.PostMapper">
    <insert id="save">
        INSERT INTO post(title,content,created_date,name)
        VALUES(#{title},#{content},#{created_date},#{name})
    </insert>
    <select id="findAll" resultType="PostVO">
        SELECT * FROM post
    </select>
</mapper>

PostService 수정

public interface PostService {
    public void save(PostVO postVO);
    public List<PostVO> findAll();
}
@Service
public class PostServiceImpl implements PostService {
    @Autowired
    private PostMapper postMapper;

    public void save(PostVO postVO){
        postMapper.save(postVO);
    }

    @Override
    public List<PostVO> findAll() {
        return postMapper.findAll();
    }
}

BoardController 수정

@Controller
@RequestMapping(value = "/board")
public class BoardController {
    @Autowired
    private PostService postService;

    @GetMapping
    public void getBoard(Model model){
        model.addAttribute("postList",postService.findAll());
    }
}

위의 코드에서 나온 Model 클래스가 MVC패턴의 Model역할을 한다고 생각하면 된다. board.jsp에서 ${postList}를 반복하는 이유가 위의 코드에서 DB에서 받아온 ListpostList라는 이름의 Model의 속성으로 지정되기 때문이다.

테스트

0개의 댓글