Commit cb01f7b11d6f2fe2cd5cf48d1e5a2bb0379f6c31
1 parent
6f22ff1b
.
Showing
24 changed files
with
42 additions
and
77 deletions
Show diff stats
src/main/java/com/daeucna/board/BoardApplication.java
@@ -2,8 +2,6 @@ package com.daeucna.board; | @@ -2,8 +2,6 @@ package com.daeucna.board; | ||
2 | 2 | ||
3 | import org.springframework.boot.SpringApplication; | 3 | import org.springframework.boot.SpringApplication; |
4 | import org.springframework.boot.autoconfigure.SpringBootApplication; | 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; |
5 | -import org.springframework.boot.builder.SpringApplicationBuilder; | ||
6 | -import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; | ||
7 | 5 | ||
8 | @SpringBootApplication | 6 | @SpringBootApplication |
9 | public class BoardApplication { | 7 | public class BoardApplication { |
src/main/java/com/daeucna/board/common/FileDownloadUtil.java
@@ -5,11 +5,10 @@ import java.io.FileInputStream; | @@ -5,11 +5,10 @@ import java.io.FileInputStream; | ||
5 | import java.io.OutputStream; | 5 | import java.io.OutputStream; |
6 | import java.net.URLEncoder; | 6 | import java.net.URLEncoder; |
7 | import java.util.Map; | 7 | import java.util.Map; |
8 | - | 8 | + |
9 | import javax.servlet.http.HttpServletRequest; | 9 | import javax.servlet.http.HttpServletRequest; |
10 | import javax.servlet.http.HttpServletResponse; | 10 | import javax.servlet.http.HttpServletResponse; |
11 | 11 | ||
12 | -import org.springframework.stereotype.Component; | ||
13 | import org.springframework.util.FileCopyUtils; | 12 | import org.springframework.util.FileCopyUtils; |
14 | import org.springframework.web.servlet.view.AbstractView; | 13 | import org.springframework.web.servlet.view.AbstractView; |
15 | 14 |
src/main/java/com/daeucna/board/config/DataSourceConfig.java
@@ -2,19 +2,17 @@ package com.daeucna.board.config; | @@ -2,19 +2,17 @@ package com.daeucna.board.config; | ||
2 | 2 | ||
3 | import javax.sql.DataSource; | 3 | import javax.sql.DataSource; |
4 | 4 | ||
5 | -import org.apache.ibatis.annotations.Mapper; | ||
6 | import org.apache.ibatis.session.SqlSessionFactory; | 5 | import org.apache.ibatis.session.SqlSessionFactory; |
7 | import org.mybatis.spring.SqlSessionFactoryBean; | 6 | import org.mybatis.spring.SqlSessionFactoryBean; |
8 | import org.mybatis.spring.SqlSessionTemplate; | 7 | import org.mybatis.spring.SqlSessionTemplate; |
9 | -import org.mybatis.spring.annotation.MapperScan; | ||
10 | import org.springframework.boot.context.properties.ConfigurationProperties; | 8 | import org.springframework.boot.context.properties.ConfigurationProperties; |
11 | import org.springframework.boot.jdbc.DataSourceBuilder; | 9 | import org.springframework.boot.jdbc.DataSourceBuilder; |
12 | import org.springframework.context.ApplicationContext; | 10 | import org.springframework.context.ApplicationContext; |
13 | import org.springframework.context.annotation.Bean; | 11 | import org.springframework.context.annotation.Bean; |
14 | import org.springframework.context.annotation.ComponentScan; | 12 | import org.springframework.context.annotation.ComponentScan; |
13 | +import org.springframework.context.annotation.ComponentScan.Filter; | ||
15 | import org.springframework.context.annotation.Configuration; | 14 | import org.springframework.context.annotation.Configuration; |
16 | import org.springframework.context.annotation.FilterType; | 15 | import org.springframework.context.annotation.FilterType; |
17 | -import org.springframework.context.annotation.ComponentScan.Filter; | ||
18 | import org.springframework.core.io.support.PathMatchingResourcePatternResolver; | 16 | import org.springframework.core.io.support.PathMatchingResourcePatternResolver; |
19 | import org.springframework.jdbc.datasource.DataSourceTransactionManager; | 17 | import org.springframework.jdbc.datasource.DataSourceTransactionManager; |
20 | import org.springframework.transaction.PlatformTransactionManager; | 18 | import org.springframework.transaction.PlatformTransactionManager; |
src/main/java/com/daeucna/board/config/WebMvcConfig.java
@@ -9,24 +9,12 @@ import org.springframework.context.annotation.FilterType; | @@ -9,24 +9,12 @@ import org.springframework.context.annotation.FilterType; | ||
9 | import org.springframework.http.MediaType; | 9 | import org.springframework.http.MediaType; |
10 | import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; | 10 | import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; |
11 | import org.springframework.http.converter.xml.MarshallingHttpMessageConverter; | 11 | import org.springframework.http.converter.xml.MarshallingHttpMessageConverter; |
12 | -import org.springframework.jdbc.datasource.DataSourceTransactionManager; | ||
13 | import org.springframework.oxm.jaxb.Jaxb2Marshaller; | 12 | import org.springframework.oxm.jaxb.Jaxb2Marshaller; |
14 | -import org.springframework.stereotype.Component; | ||
15 | -import org.springframework.stereotype.Controller; | ||
16 | -import org.springframework.stereotype.Repository; | ||
17 | -import org.springframework.stereotype.Service; | ||
18 | -import org.springframework.transaction.PlatformTransactionManager; | ||
19 | -import org.springframework.web.bind.annotation.ControllerAdvice; | ||
20 | -import org.springframework.web.multipart.commons.CommonsMultipartResolver; | ||
21 | import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer; | 13 | import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer; |
22 | import org.springframework.web.servlet.config.annotation.InterceptorRegistry; | 14 | import org.springframework.web.servlet.config.annotation.InterceptorRegistry; |
23 | -import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; | ||
24 | import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; | 15 | import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; |
25 | -import org.springframework.web.servlet.config.annotation.ViewResolverRegistry; | ||
26 | import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; | 16 | import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; |
27 | -import org.springframework.web.servlet.view.BeanNameViewResolver; | ||
28 | 17 | ||
29 | -import com.daeucna.board.common.FileDownloadUtil; | ||
30 | import com.daeucna.board.interceptor.BaseInterceptor; | 18 | import com.daeucna.board.interceptor.BaseInterceptor; |
31 | import com.fasterxml.jackson.databind.DeserializationFeature; | 19 | import com.fasterxml.jackson.databind.DeserializationFeature; |
32 | import com.fasterxml.jackson.databind.ObjectMapper; | 20 | import com.fasterxml.jackson.databind.ObjectMapper; |
src/main/java/com/daeucna/board/dao/BoardDao.java
1 | package com.daeucna.board.dao; | 1 | package com.daeucna.board.dao; |
2 | 2 | ||
3 | import java.util.List; | 3 | import java.util.List; |
4 | - | 4 | + |
5 | import javax.annotation.Resource; | 5 | import javax.annotation.Resource; |
6 | - | 6 | + |
7 | import org.apache.ibatis.session.SqlSession; | 7 | import org.apache.ibatis.session.SqlSession; |
8 | -import org.springframework.beans.factory.annotation.Autowired; | ||
9 | import org.springframework.stereotype.Repository; | 8 | import org.springframework.stereotype.Repository; |
10 | 9 | ||
11 | import com.daeucna.board.domain.BoardDto; | 10 | import com.daeucna.board.domain.BoardDto; |
src/main/java/com/daeucna/board/interceptor/BaseInterceptor.java
@@ -3,23 +3,22 @@ package com.daeucna.board.interceptor; | @@ -3,23 +3,22 @@ package com.daeucna.board.interceptor; | ||
3 | import javax.servlet.http.HttpServletRequest; | 3 | import javax.servlet.http.HttpServletRequest; |
4 | import javax.servlet.http.HttpServletResponse; | 4 | import javax.servlet.http.HttpServletResponse; |
5 | 5 | ||
6 | -import org.slf4j.Logger; | ||
7 | -import org.slf4j.LoggerFactory; | ||
8 | import org.springframework.web.servlet.HandlerInterceptor; | 6 | import org.springframework.web.servlet.HandlerInterceptor; |
9 | import org.springframework.web.servlet.ModelAndView; | 7 | import org.springframework.web.servlet.ModelAndView; |
8 | + | ||
9 | +import lombok.extern.slf4j.Slf4j; | ||
10 | 10 | ||
11 | +@Slf4j | ||
11 | public class BaseInterceptor implements HandlerInterceptor { | 12 | public class BaseInterceptor implements HandlerInterceptor { |
12 | 13 | ||
13 | - private final Logger logger = LoggerFactory.getLogger(this.getClass()); | ||
14 | - | ||
15 | @Override | 14 | @Override |
16 | public boolean preHandle( HttpServletRequest request | 15 | public boolean preHandle( HttpServletRequest request |
17 | , HttpServletResponse response | 16 | , HttpServletResponse response |
18 | , Object handler ) throws Exception { | 17 | , Object handler ) throws Exception { |
19 | 18 | ||
20 | - if (logger.isDebugEnabled()) { | ||
21 | - logger.debug("===== ===== ===== ===== ===== START ===== ===== ===== ===== ====="); | ||
22 | - logger.debug("RequestURI:[{}]", request.getRequestURI()); | 19 | + if (log.isDebugEnabled()) { |
20 | + log.debug("===== ===== ===== ===== ===== START ===== ===== ===== ===== ====="); | ||
21 | + log.debug("RequestURI:[{}]", request.getRequestURI()); | ||
23 | } | 22 | } |
24 | 23 | ||
25 | return true; | 24 | return true; |
@@ -31,8 +30,8 @@ public class BaseInterceptor implements HandlerInterceptor { | @@ -31,8 +30,8 @@ public class BaseInterceptor implements HandlerInterceptor { | ||
31 | , Object handler | 30 | , Object handler |
32 | , ModelAndView modelAndView ) throws Exception { | 31 | , ModelAndView modelAndView ) throws Exception { |
33 | 32 | ||
34 | - if (logger.isDebugEnabled()) { | ||
35 | - logger.debug("===== ===== ===== ===== ===== END ===== ===== ===== ===== =====\n"); | 33 | + if (log.isDebugEnabled()) { |
34 | + log.debug("===== ===== ===== ===== ===== END ===== ===== ===== ===== =====\n"); | ||
36 | } | 35 | } |
37 | } | 36 | } |
38 | 37 |
src/main/java/com/daeucna/board/security/CustomAuthenticationFailureHandler.java
@@ -18,6 +18,7 @@ public class CustomAuthenticationFailureHandler implements AuthenticationFailure | @@ -18,6 +18,7 @@ public class CustomAuthenticationFailureHandler implements AuthenticationFailure | ||
18 | 18 | ||
19 | @Override | 19 | @Override |
20 | public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws IOException, ServletException { | 20 | public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws IOException, ServletException { |
21 | + log.info("Authentication Failure"); | ||
21 | response.sendRedirect(request.getContextPath() + "/"); | 22 | response.sendRedirect(request.getContextPath() + "/"); |
22 | } | 23 | } |
23 | 24 |
src/main/java/com/daeucna/board/security/CustomAuthenticationSuccessHandler.java
@@ -22,6 +22,7 @@ public class CustomAuthenticationSuccessHandler implements AuthenticationSuccess | @@ -22,6 +22,7 @@ public class CustomAuthenticationSuccessHandler implements AuthenticationSuccess | ||
22 | HttpSession session = request.getSession(); | 22 | HttpSession session = request.getSession(); |
23 | session.setMaxInactiveInterval(60); | 23 | session.setMaxInactiveInterval(60); |
24 | session.setAttribute("authentication", authentication); | 24 | session.setAttribute("authentication", authentication); |
25 | + log.info("Authentication Success"); | ||
25 | response.sendRedirect(request.getContextPath() + "/"); | 26 | response.sendRedirect(request.getContextPath() + "/"); |
26 | } | 27 | } |
27 | 28 |
src/main/java/com/daeucna/board/security/CustomLoadUserByUsername.java
@@ -27,8 +27,12 @@ public class CustomLoadUserByUsername implements UserDetailsService{ | @@ -27,8 +27,12 @@ public class CustomLoadUserByUsername implements UserDetailsService{ | ||
27 | UserDto user = null; | 27 | UserDto user = null; |
28 | try { | 28 | try { |
29 | user = userDao.getOne(userForm); | 29 | user = userDao.getOne(userForm); |
30 | - if(user == null) throw new UsernameNotFoundException("Not Found User"); | ||
31 | - } catch (Exception e) { | 30 | + if(user == null) { |
31 | + log.warn("Not Found User"); | ||
32 | + throw new UsernameNotFoundException("Not Found User"); | ||
33 | + } | ||
34 | + } catch (Exception e) { | ||
35 | + log.error("Not Found User Error"); | ||
32 | throw new UsernameNotFoundException("Not Found User(Error)"); | 36 | throw new UsernameNotFoundException("Not Found User(Error)"); |
33 | } | 37 | } |
34 | return user; | 38 | return user; |
src/main/java/com/daeucna/board/security/controller/LoginController.java
@@ -54,6 +54,7 @@ public class LoginController { | @@ -54,6 +54,7 @@ public class LoginController { | ||
54 | return "page/login/join"; | 54 | return "page/login/join"; |
55 | } | 55 | } |
56 | 56 | ||
57 | + @SuppressWarnings({ "rawtypes", "unchecked" }) | ||
57 | @PostMapping("/join_proc") | 58 | @PostMapping("/join_proc") |
58 | @ResponseBody | 59 | @ResponseBody |
59 | public ResponseEntity procJoin(HttpServletRequest request, HttpServletResponse response, UserForm userForm) { | 60 | public ResponseEntity procJoin(HttpServletRequest request, HttpServletResponse response, UserForm userForm) { |
src/main/java/com/daeucna/board/security/domain/UserDto.java
@@ -4,7 +4,6 @@ import java.util.ArrayList; | @@ -4,7 +4,6 @@ import java.util.ArrayList; | ||
4 | import java.util.Collection; | 4 | import java.util.Collection; |
5 | import java.util.List; | 5 | import java.util.List; |
6 | 6 | ||
7 | -import org.springframework.security.core.Authentication; | ||
8 | import org.springframework.security.core.GrantedAuthority; | 7 | import org.springframework.security.core.GrantedAuthority; |
9 | import org.springframework.security.core.authority.SimpleGrantedAuthority; | 8 | import org.springframework.security.core.authority.SimpleGrantedAuthority; |
10 | import org.springframework.security.core.userdetails.UserDetails; | 9 | import org.springframework.security.core.userdetails.UserDetails; |
@@ -16,6 +15,8 @@ import lombok.ToString; | @@ -16,6 +15,8 @@ import lombok.ToString; | ||
16 | @ToString | 15 | @ToString |
17 | public class UserDto implements UserDetails { | 16 | public class UserDto implements UserDetails { |
18 | 17 | ||
18 | + private static final long serialVersionUID = -8756513459420668339L; | ||
19 | + | ||
19 | String ROLE_PREFIX = "ROLE_"; | 20 | String ROLE_PREFIX = "ROLE_"; |
20 | 21 | ||
21 | private String id; | 22 | private String id; |
src/main/java/com/daeucna/board/security/service/LoginService.java
1 | package com.daeucna.board.security.service; | 1 | package com.daeucna.board.security.service; |
2 | 2 | ||
3 | -import java.io.File; | ||
4 | -import java.util.ArrayList; | ||
5 | -import java.util.HashMap; | ||
6 | -import java.util.List; | ||
7 | -import java.util.UUID; | ||
8 | - | ||
9 | -import org.slf4j.Logger; | ||
10 | -import org.slf4j.LoggerFactory; | ||
11 | import org.springframework.beans.factory.annotation.Autowired; | 3 | import org.springframework.beans.factory.annotation.Autowired; |
12 | import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; | 4 | import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; |
13 | import org.springframework.stereotype.Service; | 5 | import org.springframework.stereotype.Service; |
14 | import org.springframework.transaction.annotation.Propagation; | 6 | import org.springframework.transaction.annotation.Propagation; |
15 | import org.springframework.transaction.annotation.Transactional; | 7 | import org.springframework.transaction.annotation.Transactional; |
16 | -import org.springframework.web.multipart.MultipartFile; | ||
17 | 8 | ||
18 | -import com.daeucna.board.common.PagingUtil; | ||
19 | -import com.daeucna.board.common.ResultUtil; | ||
20 | -import com.daeucna.board.dao.BoardDao; | ||
21 | -import com.daeucna.board.domain.BoardDto; | ||
22 | -import com.daeucna.board.domain.BoardFileForm; | ||
23 | -import com.daeucna.board.domain.BoardForm; | ||
24 | -import com.daeucna.board.domain.CommonDto; | ||
25 | -import com.daeucna.board.domain.CommonForm; | ||
26 | import com.daeucna.board.security.dao.UserDao; | 9 | import com.daeucna.board.security.dao.UserDao; |
27 | -import com.daeucna.board.security.domain.UserDto; | ||
28 | import com.daeucna.board.security.domain.UserForm; | 10 | import com.daeucna.board.security.domain.UserForm; |
11 | + | ||
12 | +import lombok.extern.slf4j.Slf4j; | ||
29 | 13 | ||
14 | +@Slf4j | ||
30 | @Transactional(readOnly = true) | 15 | @Transactional(readOnly = true) |
31 | @Service | 16 | @Service |
32 | public class LoginService { | 17 | public class LoginService { |
33 | 18 | ||
34 | - protected final Logger logger = LoggerFactory.getLogger(LoginService.class); | ||
35 | - | ||
36 | @Autowired | 19 | @Autowired |
37 | private UserDao userDao; | 20 | private UserDao userDao; |
38 | @Autowired | 21 | @Autowired |
@@ -52,7 +35,7 @@ public class LoginService { | @@ -52,7 +35,7 @@ public class LoginService { | ||
52 | } else { | 35 | } else { |
53 | userForm.setResult("FAIL"); | 36 | userForm.setResult("FAIL"); |
54 | } | 37 | } |
55 | - | 38 | + log.info("사용자등록 완료"); |
56 | return userForm; | 39 | return userForm; |
57 | } | 40 | } |
58 | 41 |
src/main/resources/templates/fragment/config.html
1 | -<html lagn="ko" | ||
2 | - xmlns:th="http://www.thymeleaf.org" | 1 | +<!DOCTYPE html> |
2 | +<html xmlns:th="http://www.thymeleaf.org" | ||
3 | xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"> | 3 | xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"> |
4 | 4 | ||
5 | <!--configFragment 선언--> | 5 | <!--configFragment 선언--> |
src/main/resources/templates/fragment/configNoCustom.html
src/main/resources/templates/fragment/footer.html
1 | -<html lagn="ko" | ||
2 | - xmlns:th="http://www.thymeleaf.org"> | 1 | +<html xmlns:th="http://www.thymeleaf.org"> |
3 | 2 | ||
4 | <!--footerFragment 선언--> | 3 | <!--footerFragment 선언--> |
5 | <div th:fragment="footerFragment" style="height: 4em;text-align: center;"> | 4 | <div th:fragment="footerFragment" style="height: 4em;text-align: center;"> |
src/main/resources/templates/fragment/header.html
1 | -<html lagn="ko" | ||
2 | - xmlns:th="http://www.thymeleaf.org"> | 1 | +<html xmlns:th="http://www.thymeleaf.org"> |
3 | 2 | ||
4 | <!--headerFragment 선언--> | 3 | <!--headerFragment 선언--> |
5 | <div th:fragment="headerFragment" style="height: 4em;text-align: center;"> | 4 | <div th:fragment="headerFragment" style="height: 4em;text-align: center;"> |
6 | <div class="shadow-sm p-3 mb-5 bg-body rounded" style="height: 3.4rem;"> | 5 | <div class="shadow-sm p-3 mb-5 bg-body rounded" style="height: 3.4rem;"> |
7 | <div style="text-align: left; float: left;"> | 6 | <div style="text-align: left; float: left;"> |
8 | - <button type="button" class="btn btn-outline-dark"><a th:href="@{/board/boardList?boardName=maintenance}">유지보수</a></button> | ||
9 | - <button type="button" class="btn btn-outline-dark"><a th:href="@{/board/boardList?boardName=etc}">기타</a></button> | 7 | + <a th:href="@{/board/boardList?boardName=maintenance}"><button type="button" class="btn btn-outline-dark">유지보수</button></a> |
8 | + <a th:href="@{/board/boardList?boardName=etc}"><button type="button" class="btn btn-outline-dark">기타</button></a> | ||
10 | </div> | 9 | </div> |
11 | <div style="text-align: right; float: right;"> | 10 | <div style="text-align: right; float: right;"> |
12 | <form class="d-flex" th:action="@{/logout}"> | 11 | <form class="d-flex" th:action="@{/logout}"> |
src/main/resources/templates/layout/default_layout.html
src/main/resources/templates/layout/oneDoc_layout.html
src/main/resources/templates/page/boardDetail.html
@@ -219,7 +219,7 @@ | @@ -219,7 +219,7 @@ | ||
219 | <div class="inner"> | 219 | <div class="inner"> |
220 | <h2>상세내역</h2> | 220 | <h2>상세내역</h2> |
221 | <form id="boardForm" name="boardForm"> | 221 | <form id="boardForm" name="boardForm"> |
222 | - <table width="100%" class="table01"> | 222 | + <table style="width: 100%" class="table01"> |
223 | <colgroup> | 223 | <colgroup> |
224 | <col width="15%"> | 224 | <col width="15%"> |
225 | <col width="35%"> | 225 | <col width="35%"> |
src/main/resources/templates/page/boardList.html
@@ -148,7 +148,7 @@ | @@ -148,7 +148,7 @@ | ||
148 | <span class="total_count"><strong>전체</strong> : <span id="total_count" class="t_red">0</span>개</span> | 148 | <span class="total_count"><strong>전체</strong> : <span id="total_count" class="t_red">0</span>개</span> |
149 | </div> | 149 | </div> |
150 | 150 | ||
151 | - <table width="100%" class="table01"> | 151 | + <table style="width: 100%" class="table01"> |
152 | <colgroup> | 152 | <colgroup> |
153 | <col width="7%" /> | 153 | <col width="7%" /> |
154 | <col width="25%" /> | 154 | <col width="25%" /> |
src/main/resources/templates/page/boardReply.html
@@ -87,7 +87,7 @@ | @@ -87,7 +87,7 @@ | ||
87 | <h2>신규작성</h2> | 87 | <h2>신규작성</h2> |
88 | <form id="boardForm" name="boardForm"> | 88 | <form id="boardForm" name="boardForm"> |
89 | <input type="hidden" id="board_parent_seq" name="board_parent_seq" th:value="${#request.getParameter('boardSeq')}"/> <!-- 부모 게시글 번호 --> | 89 | <input type="hidden" id="board_parent_seq" name="board_parent_seq" th:value="${#request.getParameter('boardSeq')}"/> <!-- 부모 게시글 번호 --> |
90 | - <table width="100%" class="table02"> | 90 | + <table style="width: 100%" class="table02"> |
91 | <caption><strong><span class="t_red">*</span> 표시는 필수입력 항목입니다.</strong></caption> | 91 | <caption><strong><span class="t_red">*</span> 표시는 필수입력 항목입니다.</strong></caption> |
92 | <colgroup> | 92 | <colgroup> |
93 | <col width="20%"> | 93 | <col width="20%"> |
src/main/resources/templates/page/boardUpdate.html
@@ -209,7 +209,7 @@ | @@ -209,7 +209,7 @@ | ||
209 | <div class="inner"> | 209 | <div class="inner"> |
210 | <h2>상세내역</h2> | 210 | <h2>상세내역</h2> |
211 | <form id="boardForm" name="boardForm" action="/board/updateBoard" enctype="multipart/form-data" method="post" onsubmit="return false;"> | 211 | <form id="boardForm" name="boardForm" action="/board/updateBoard" enctype="multipart/form-data" method="post" onsubmit="return false;"> |
212 | - <table width="100%" class="table02"> | 212 | + <table style="width: 100%" class="table02"> |
213 | <caption><strong><span class="t_red">*</span> 표시는 필수입력 항목입니다.</strong></caption> | 213 | <caption><strong><span class="t_red">*</span> 표시는 필수입력 항목입니다.</strong></caption> |
214 | <colgroup> | 214 | <colgroup> |
215 | <col width="20%"> | 215 | <col width="20%"> |
src/main/resources/templates/page/boardWrite.html
@@ -90,7 +90,7 @@ | @@ -90,7 +90,7 @@ | ||
90 | <div class="inner"> | 90 | <div class="inner"> |
91 | <h2>신규작성</h2> | 91 | <h2>신규작성</h2> |
92 | <form id="boardForm" name="boardForm" action="[[@{/}]]board/insertBoard" enctype="multipart/form-data" method="post" onsubmit="return false;"> | 92 | <form id="boardForm" name="boardForm" action="[[@{/}]]board/insertBoard" enctype="multipart/form-data" method="post" onsubmit="return false;"> |
93 | - <table width="100%" class="table02"> | 93 | + <table style="width: 100%" class="table02"> |
94 | <caption><strong><span class="t_red">*</span> 표시는 필수입력 항목입니다.</strong></caption> | 94 | <caption><strong><span class="t_red">*</span> 표시는 필수입력 항목입니다.</strong></caption> |
95 | <colgroup> | 95 | <colgroup> |
96 | <col width="20%"> | 96 | <col width="20%"> |
src/main/resources/templates/page/login/join.html
@@ -128,7 +128,7 @@ | @@ -128,7 +128,7 @@ | ||
128 | <input type="checkbox" class="custom-control-input" id="aggrement" required /> | 128 | <input type="checkbox" class="custom-control-input" id="aggrement" required /> |
129 | <label class="custom-control-label" for="aggrement">개인정보 수집 및 이용에 동의합니다.</label> | 129 | <label class="custom-control-label" for="aggrement">개인정보 수집 및 이용에 동의합니다.</label> |
130 | </div> | 130 | </div> |
131 | - <div class="mb-4" /> | 131 | + <hr class="mb-4" /> |
132 | <button class="form-control btn btn-primary btn-lg btn-block" id="btnJoin">가입 완료</button> | 132 | <button class="form-control btn btn-primary btn-lg btn-block" id="btnJoin">가입 완료</button> |
133 | </form> | 133 | </form> |
134 | </div> | 134 | </div> |