티스토리 뷰

원래 emp로 해야하는데 그냥 mvc_board 버전으로 to do list 작성.....

 

1. 프로젝트 생성(Spring Legacy Project - Spring MVC Project)

2. pom.xml에 코드 넣기

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>edu.kosmo</groupId>
    <artifactId>ex</artifactId>
    <name>spring_board_1</name>
    <packaging>war</packaging>
    <version>1.0.0-BUILD-SNAPSHOT</version>
 
    <!-- 여기서 부터 아래 코드 복붙하기!!!!!!!!!! -->
 
    <properties>
        <java-version>1.8</java-version>
        <org.springframework-version>5.0.7.RELEASE</org.springframework-version>
        <org.aspectj-version>1.6.10</org.aspectj-version>
        <org.slf4j-version>1.6.6</org.slf4j-version>
        <org.security-version>5.0.6.RELEASE</org.security-version>
    </properties>
 
    <repositories>
        <repository>
            <id>oracle</id>
            <url>http://www.datanucleus.org/downloads/maven2/</url>
        </repository>
    </repositories>
 
    <dependencies>
        <!-- 오라클 JDBC 드라이버 -->
        <dependency>
            <groupId>oracle</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>11.2.0.3</version>
        </dependency>
 
        <!-- Spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${org.springframework-version}</version>
            <exclusions>
                <!-- Exclude Commons Logging in favor of SLF4j -->
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
 
        <!-- AspectJ -->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
            <version>${org.aspectj-version}</version>
        </dependency>
 
        <!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>${org.aspectj-version}</version>
        </dependency>
 
        <!-- Logging -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${org.slf4j-version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>${org.slf4j-version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${org.slf4j-version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.15</version>
            <exclusions>
                <exclusion>
                    <groupId>javax.mail</groupId>
                    <artifactId>mail</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>javax.jms</groupId>
                    <artifactId>jms</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jdmk</groupId>
                    <artifactId>jmxtools</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jmx</groupId>
                    <artifactId>jmxri</artifactId>
                </exclusion>
            </exclusions>
            <!-- <scope>runtime</scope> -->
        </dependency>
 
        <!-- @Inject -->
        <dependency>
            <groupId>javax.inject</groupId>
            <artifactId>javax.inject</artifactId>
            <version>1</version>
        </dependency>
 
        <!-- Servlet -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
 
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
 
        <!-- Test -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
 
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
 
        <dependency>
            <groupId>com.zaxxer</groupId>
            <artifactId>HikariCP</artifactId>
            <version>2.7.8</version>
        </dependency>
 
         <!-- Mybatis를 사용하기 위한 라이브러리... -->
        <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.6</version>
        </dependency>
 
        <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.2</version>
        </dependency>
 
 
        <dependency>
            <groupId>org.bgee.log4jdbc-log4j2</groupId>
            <artifactId>log4jdbc-log4j2-jdbc4</artifactId>
            <version>1.16</version>
        </dependency>
 
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.22</version>
            <scope>provided</scope>
        </dependency>
 
 
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.9.6</version>
        </dependency>
 
        <!-- 자바객체를 xml으로 -->
        <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.dataformat/jackson-dataformat-xml -->
        <dependency>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-xml</artifactId>
            <version>2.9.6</version>
        </dependency>
 
        <!-- 자바객체를 Json으로 -->
        <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.2</version>
        </dependency>
 
        <!-- Spring Security -->
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-core</artifactId>
            <version>${org.security-version}</version>
        </dependency>
 
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-web</artifactId>
            <version>${org.security-version}</version>
        </dependency>
 
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-config</artifactId>
            <version>${org.security-version}</version>
        </dependency>
 
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-taglibs</artifactId>
            <version>${org.security-version}</version>
        </dependency>
 
    </dependencies>
 
 
    <build>
        <plugins>
            <plugin>
                <artifactId>maven-eclipse-plugin</artifactId>
                <version>2.9</version>
                <configuration>
                    <additionalProjectnatures>
                        <projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>
                    </additionalProjectnatures>
                    <additionalBuildcommands>
                        <buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand>
                    </additionalBuildcommands>
                    <downloadSources>true</downloadSources>
                    <downloadJavadocs>true</downloadJavadocs>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.5.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <compilerArgument>-Xlint:all</compilerArgument>
                    <showWarnings>true</showWarnings>
                    <showDeprecation>true</showDeprecation>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.2.1</version>
                <configuration>
                    <mainClass>org.test.int1.Main</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
cs

 


3. web.xml에 코드 넣기(한글 처리)

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee https://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 
    <!-- The definition of the Root Spring Container shared by all Servlets and Filters -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring/root-context.xml</param-value>
    </context-param>
    
    <!-- Creates the Spring Container shared by all Servlets and Filters -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
 
    <!-- Processes application requests -->
    <servlet>
        <servlet-name>appServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
        
    <servlet-mapping>
        <servlet-name>appServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    
    <!-- filler 태그 부분 복붙하기! -->
    
    <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter
        </filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
    </filter>
 
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
 
</web-app>
 
 

 

4. project clean을 해주고 Maven update 해주기!
(혹시 오류가 발생할 수 있으니)

 

 

5. servlet-context.xml은 아래 코드부분만 변경
<context:component-scan base-package="edu.kosmo.ex.controller" />



6.  root-context.xml에 코드 복붙하기....

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring"
    xsi:schemaLocation="http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsd
      http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
      http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
 
    <!-- Root Context: defines shared resources visible to all other web components -->
    <!-- hikari는 connection 풀을 위한 객체 생성 -->
    <bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
                                        <!--DriverSpy는 디버깅 용 -->
        <property name="driverClassName"
            value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"></property>
        <property name="jdbcUrl"
            value="jdbc:log4jdbc:oracle:thin:@localhost:1521:XE"></property>
        <property name="username" value="scott"></property>
        <property name="password" value="tiger"></property>
    </bean>
 
    <!-- HikariCP configuration --> <!-- 커넥션 풀 생성 -->
    <bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource"
        destroy-method="close">
        <constructor-arg ref="hikariConfig" />
    </bean>
 
    <!-- <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> 
        <property name="dataSource" ref="dataSource"></property> </bean> -->
 
    <!-- mapperLocations을 특별히 지정하기 -->
    <bean id="sqlSessionFactory"
        class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="mapperLocations"
            value="classpath:/sqlmap/*.xml" />
    </bean>
 
    <!-- mybatis:scan 해당 패키지 밑에 인터페이스는 전부 Mapper로 인식 -->
    <!-- <mybatis-spring:scan base-package="edu.kosmo.ex.mapper" /> -->
 
    <!-- mybatis:scan 해당 패키지 밑에 있는 특정 인터페이스만 Mapper로 인식 -->
    <mybatis-spring:scan
        base-package="edu.kosmo.ex.mapper" 
        annotation="org.apache.ibatis.annotations.Mapper" />
    <context:component-scan
        base-package="edu.kosmo.ex.service" />
 
</beans>
 
cs

 


7. BoardVO.java 만들기 (edu.kosmo.ex.vo)
- jsp 게시판 때 만들었던 Dto를 생각해보자.
- 롬복 사용할것.
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
@ToString
- 멤버 변수는 sql에 desc mvc_board;를 해서 붙여넣기 해서 주석 처리 후 작성.
- 멤버 변수 옆에 데이터 타입 주석을 달아주기.

 


8. BoardMapper.java 인터페이스 클래스 만들기 (edu.kosmo.ex.mapper)
- 클래스 위에 @Mapper 붙여주기
- 추상 함수 2개 만들기
List<BoardVO> getList();
BoardVO read(int bid);

 

 

9. src/main/resources 폴더에 sqlmap 폴더 생성하기!

10. sqlmap 폴더 안에 BoardMapper.xml 만들기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?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"> 
<!-- namespace는 패키지 명 + 인터페이스명과 맞춰줘야한다. -->
<mapper namespace="edu.kosmo.ex.mapper.BoardMapper">
              
   <select id="getList" resultType="edu.kosmo.ex.vo.BoardVO">
   <![CDATA[
      SELECT * FROM mvc_board ORDER BY bgroup DESC, bstep ASC
   ]]>
   </select> <!-- 끝에 절대 ; 넣지 않도록 주의!! -->
   
   <!-- BoardMapper.java와 맞춘다! -->
   <select id="read" resultType="edu.kosmo.ex.vo.BoardVO">
   <![CDATA[
      SELECT * FROM mvc_board WHERE bid = #{bid}
   ]]>
   </select> 
   
</mapper>
cs



11.  src/main/resources 폴더 안에  log4jdbc.log4j2.properties 파일 넣기!
위치는 log4j.xml 파일과 같게 하기!
log4.xml에 코드 복붙하기

log4j.xml
0.00MB
log4jdbc.log4j2.properties
0.00MB

 

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">
<log4j:configuration
   xmlns:log4j="http://jakarta.apache.org/log4j/">
 
   <!-- Appenders -->
   <appender name="console"
      class="org.apache.log4j.ConsoleAppender">
      <param name="Target" value="System.out" />
      <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern"
            value="[%d{yyyy-MM-dd HH:mm:ss}] %-5p: %c - %m%n" />
      </layout>
   </appender>
 
   <appender name="fileLogger"
      class="org.apache.log4j.DailyRollingFileAppender">
      <param name="file" value="d://logs//spring//spring.Log" />
      <param name="Append" value="true" />
      <param name="dataPattern" value=".yyyy-MM-dd" />
      <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern"
            value="[%d{yyyy-MM-dd HH:mm:ss}] %-5p: %F:%L - %m%n" />
      </layout>
   </appender>
 
   <!-- Application Loggers -->
   <logger name="edu.bit.board">
      <level value="info" />
   </logger>
 
   <!-- 3rdparty Loggers -->
   <logger name="org.springframework.core">
      <level value="info" />
   </logger>
 
   <logger name="org.springframework.beans">
      <level value="info" />
   </logger>
 
   <logger name="org.springframework.context">
      <level value="info" />
   </logger>
 
   <logger name="org.springframework.web">
      <level value="info" />
   </logger>
   
  <!--   예를 들어 로깅 레벨 설정을 "INFO"로 하였을 경우 "TRACE", "DEBUG" 레벨은 무시한다. -->
 
  <!-- 출력되는 로그의 양 순서 : ERROR < WARN < INFO < DEBUG < TRACE -->         
  <!-- com.freedy.sample 하위 패키지에서 로그설정 -->
  <!-- additivity가 false인 경우 상위로거의 설정값을 상속받지 않는다. -->
  
<!--  - jdbc.sqlonly : SQL문만을 로그로 남기며, PreparedStatement일 경우 관련된 argument 값으로 대체된 SQL문이 보여진다. 
 - jdbc.sqltiming : SQL문과 해당 SQL을 실행시키는데 수행된 시간 정보(milliseconds)를 포함한다. 
 - jdbc.audit : ResultSet을 제외한 모든 JDBC 호출 정보를 로그로 남긴다. 
 - jdbc.resultset : ResultSet을 포함한 모든 JDBC 호출 정보를 로그로 남긴다.
 - jdbc.resultsettable : SQL 결과 조회된 데이터의 table을 로그로 남긴다. -->
 
   <!-- SQL Logger -->
 
   <logger name="jdbc.sqltiming" additivity="false">
      <level value="warn" />
      <appender-ref ref="console" />
   </logger>
 
   <logger name="jdbc.sqlonly" additivity="false">
      <level value="info" />
      <appender-ref ref="console" />
   </logger>
 
   <logger name="jdbc.audit" additivity="false">
      <level value="warn" />
      <appender-ref ref="console" />
   </logger>
 
   <logger name="jdbc.resultset" additivity="false">
      <level value="warn" />
      <appender-ref ref="console" />
   </logger>
 
   <logger name="jdbc.resultsettable" additivity="false">
      <level value="info" />
      <appender-ref ref="console" />
   </logger>
 
   <!-- Root Logger -->
   <root>
      <priority value="info" />
      <appender-ref ref="console" />
   </root>
 
</log4j:configuration>
cs

 



12. BoardService.java (interface 클래스) 만들기 (edu.kosmo.ex.service)
바디안에 List<BoardVO> getList();
BoardVO read(int bid); 추상함수 넣기

 


13.BoardServiceimpl.java ( interface BoardService를 상속받는 클래스) 만들기 (edu.kosmo.ex.service)
- BoardServiceimpl 클래스 위에 @Service, @Log4j 붙이기.
이제 sysout 대신 log.info(); 사용.
- 필드 멤버로 BoardMapper 객체. (@Autowired를 위에 붙여주고 대신 new는 하지 않아도 된다.)
- List<BoardVO> getList() @Override해주기
반환 값은 boardMapper에서 만든 selectList()

-  BoardVO read(int bid) @Override해주기

반환 값은 boardMapper에서 만든 read(bid)

 


14. BoardController.java 만들기 (edu.kosmo.ex.controller)
- BoardController 클래스 위에 @Controller 붙이기
* 추가로  @Log4j   /  @AllArgsConstructor 두개도 붙여주자
- private BoardService boardService; 선언
위에 @Autowired 또는 @Inject 붙여주기
- @GetMapping("/list")으로 list() 함수 만들기.
파라미터안에 Model 객체 넣어주기.
- model.addAttribute("boardList", boardService.getList());
EmpServiceimpl.java에서 반환한 값 model 객체에 boardList이름으로 저장.
- return "/board/list" 
실행할 .jsp파일 주소 반환

 

- @GetMapping("/content_view")

파라미터 안에 BoardVo 객체랑 Model 객체 넣기

bid값을 getter로 가져와서 boardService.read(bid)하고 model객체에 넣어주기.

return "board/content_view";


15. list.jsp
- views 폴더 아래에 board 폴더를 만들고 파일 생성하기
- 제일 위쪽에 아래 코드 복붙하기
<%@ page language="java" contentType="text/html;charset=utf-8" pageEncoding="utf-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
- <table> 태그로 목록 만들기
- <c:forEach var="emp" items="${empList}"> 사용하기
empno, ename, job, mgr, hiredate, sal, comm, deptno
- 그 중 sal은 
<td><fmt:formatNumber value="${emp.sal}" type="number"/></td>
를 사용해서 데이터 타입을 숫자로 바꿔주기!

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
33
34
35
36
<%@ page language="java" contentType="text/html;charset=utf-8" pageEncoding="utf-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<html>
<head>
    <title>mvc_board list</title>
</head>
<body>
    <table width="600" border="1">
        <tr>
            <td>번호</td>
            <td>이름</td>
            <td>제목</td>
            <td>날짜</td>
            <td>히트</td>
        </tr>
        <c:forEach var="board" items="${boardList}">
            <tr>
                <td>${board.bid}</td>
                <td>${board.bname}</td>
                <td>
                    <c:forEach begin="1" end="${board.bindent}">[Re]</c:forEach>
                    <a href="content_view?bid=${board.bid}">${board.btitle}</a> 
                </td>
                <td>${board.bdate}</td>
                <td>${board.bhit}</td>
            </tr>
        </c:forEach>
        <tr>
            <td colspan="5"><a href="write_view">글작성</a></td>
        </tr>
    </table>
 
</body>
</html>
 
cs

 

 

16. content_view.jsp 만들기

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
33
34
35
36
37
38
39
<%@ page language="java" contentType="text/html;charset=utf-8" pageEncoding="utf-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<html>
<head>
    <title>content_view</title>
</head>
<body>
    <table width="500" cellpadding="0" cellspacing="0" border="1">
        <form action="modify" method="post">
            <input type="hidden" name="bid" value="${content_view.bid}">
            <tr>
                <td> 번호 </td>
                <td> ${content_view.bid} </td>
            </tr>
            <tr>
                <td> 히트 </td>
                <td> ${content_view.bhit} </td>
            </tr>
            <tr>
                <td> 이름 </td>
                <td> <input type="text" name="bname" value="${content_view.bname}"></td>
            </tr>
            <tr>
                <td> 제목 </td>
                <td> <input type="text" name="btitle" value="${content_view.btitle}"></td>
            </tr>
            <tr>
                <td> 내용 </td>
                <td> <textarea rows="10" name="bcontent" >${content_view.bcontent}</textarea></td>
            </tr>
            <tr>
                <td colspan="2"> <input type="submit" value="수정"> &nbsp;&nbsp; <a href="list">목록보기</a> &nbsp;&nbsp; <a href="delete?bid=${content_view.bid}">삭제</a> &nbsp;&nbsp; <a href="reply_view?bid=${content_view.bid}">답변</a></td>
            </tr>
        </form>
    </table>
</body>
</html>
 
cs

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함