목차
1. Spring 게시판 환경설정: root-context.xml
2. Spring 게시판 실습: 글 작성, 글 목록, 상세 페이지
1. Spring 게시판 환경설정: root-context.xml
- root-context.xml 파일에는 DB 접속에 필요한 내용과 Mapper 파일에 대한 정보를 추가한다.
• 예시
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- Root Context: defines shared resources visible to all other web components -->
<!-- Data Source -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.SimpleDriverDataSource">
<property name="driverClass"
value="oracle.jdbc.driver.OracleDriver" />
<property name="url"
value="jdbc:oracle:thin:@localhost:1521:xe" />
<property name="username" value="spring" />
<property name="password" value="spring123" />
</bean>
<!-- 스프링 jdbc 즉 스프링으로 oracle 디비 연결 -->
<bean id="sqlSessionFactory"
class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:util/configuration.xml" /> <!-- Mybatis 환경설정 파일 불러옴 -->
<property name="mapperLocations" value="classpath:sql/*.xml" /> <!-- Mybatis의 Mapper 파일 불러옴 -->
</bean>
<bean id="session" class="org.mybatis.spring.SqlSessionTemplate"> <!-- DAO 클래스에서 @Autowired로 SqlSession 객체 주입 가능 -->
<constructor-arg index="0" ref="sqlSessionFactory" />
</bean>
</beans>
|
cs |
2. Spring 게시판 실습: 글 작성, 글 목록, 상세 페이지
1) 글 작성
- 글 작성 양식에서 입력한 값을 받을 때, 컨트롤러의 메소드에서 DTO 객체를 생성하고 객체에 저장시킬 수 있다. 이 때 전달하는 name 값과 메소드의 매개변수명이 같으면 @ModelAttribute 어노테이션은 생략 가능하다.
- 글 작성 폼(view) → 컨트롤러(controller) → 서비스(service) → DAO → DB(mapper 파일) 순으로 실행된다.
- Mapper 파일에서는 <insert> 태그가 실행되고, 글 작성에 성공하면 1을 돌려준다.
2) 글 목록
- 컨트롤러에서 현재 페이지 값, 한 화면에 출력할 데이터(게시글)의 개수 등의 변수를 선언한다.
- 게시글 10개를 구해올 때, model 2에서는 매개변수에 startRow와 endRow 두 값을 전달했지만, 스프링의 mapper 파일에서는 두 값을 동시에 받을 수 없다. 따라서 객체에 두 값을 담아서 객체로 전달하거나, page 값을 전달해야 한다.
- xml 파일에서는 일반적인 방법으로 부등호 기호를 쓰면 오류가 발생하기 때문에 아래 두 가지 방법 중 하나로 작성해야 인식된다.
- 컨트롤러에서 model 클래스로 6가지 값을 공유한다.(현재 페이지, 총 데이터 개수, 한 화면에 출력할 데이터 10개, 전체 페이지 수, 시작 페이지, 끝 페이지)
- 글 목록 뷰 페이지에서는 JSTL 국제화 태그 라이브러리로 날짜 형식을 지정할 수 있다.
- 글 목록 뷰 페이지에서 게시글 제목을 클릭할 때, 해당 글의 번호 값과 페이지 값을 get 방식으로 가지고 넘어가야 한다.
• xml 파일에서 부등호 기호 인식 법
1) <![CDATA[ ]]> 코드 사용
2) > < 사용 ( > → > , < → < )
3) 상세 페이지
- 게시글 목록 페이지에서 게시글의 제목을 누르면 조회수가 증가하도록 처리한다.
- 게시글 목록 페이지에서 게시글 제목을 클릭할 때 번호 값과 페이지 값을 전달하는데, 상세 페이지
- 내용의 줄바꿈을 하기 위해서는 컨트롤러에서 replace() 메소드를 사용하거나, 뷰 페이지에서 <pre> 태그를 사용한다.
- 상세 페이지에서는 번호 값과 페이지 값을 전달받고 전달한다.
* [Project] – [Build Automatically] 클릭해서 해제하면 자동 컴파일이 해제된다.
'Spring' 카테고리의 다른 글
96일차: Spring 댓글 게시판(수정, 삭제) / 이메일 인증 / 회원 관리_2021.11.03 (0) | 2021.11.03 |
---|---|
95일차: Spring 게시판 글 수정, 글 삭제 / 댓글 게시판_2021.11.02 (0) | 2021.11.02 |
93일차: Spring DB 연동 / Spring 게시판 환경 설정_2021.10.29 (0) | 2021.10.29 |
92일차: Mybatis와 Spring으로 DB 연동_2021.10.28 (0) | 2021.10.28 |
91일차: Spring_컨트롤러의 어노테이션 / JSON 변환 / 인터셉터 / mybatis와 model1_2021.10.27 (0) | 2021.10.27 |