From 48f1e364d86282da6acf1e150a45bbb01695986e Mon Sep 17 00:00:00 2001 From: Suh Date: Mon, 4 May 2020 15:11:43 +0900 Subject: [PATCH] =?UTF-8?q?=EB=94=B1=ED=9E=88=20=EC=97=86=EC=9D=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 33 ++- .../app/DefaultTodo/dao/DefaultTodoDao.java | 71 +++++ .../service/DefaultTodoMapper.java | 34 +++ .../service/DefaultTodoService.java | 15 + .../service/DefaultTodoServiceImpl.java | 51 ++++ .../app/DefaultTodo/vo/DefaultTodoVo.java | 157 ++++++++++ .../web/DefaultTodoController.java | 267 ++++++++++++++++++ src/main/java/co/nook/app/HomeController.java | 2 +- .../java/co/nook/app/user/dao/UserDao.java | 1 + .../spring/appServlet/servlet-context.xml | 1 + .../webapp/WEB-INF/spring/bean-context.xml | 3 +- .../webapp/WEB-INF/spring/root-context.xml | 31 +- src/main/webapp/WEB-INF/uploaded/ignore | 0 .../webapp/WEB-INF/views/admin/admin_data.jsp | 127 +++++++++ src/main/webapp/WEB-INF/views/home.jsp | 1 - .../webapp/WEB-INF/views/todo/todo_form.jsp | 46 ++- .../WEB-INF/views/todo/todo_form_test.jsp | 16 ++ src/main/webapp/WEB-INF/web.xml | 17 ++ src/main/webapp/index.jsp | 2 +- 19 files changed, 850 insertions(+), 25 deletions(-) create mode 100644 src/main/java/co/nook/app/DefaultTodo/dao/DefaultTodoDao.java create mode 100644 src/main/java/co/nook/app/DefaultTodo/service/DefaultTodoMapper.java create mode 100644 src/main/java/co/nook/app/DefaultTodo/service/DefaultTodoService.java create mode 100644 src/main/java/co/nook/app/DefaultTodo/service/DefaultTodoServiceImpl.java create mode 100644 src/main/java/co/nook/app/DefaultTodo/vo/DefaultTodoVo.java create mode 100644 src/main/java/co/nook/app/DefaultTodo/web/DefaultTodoController.java create mode 100644 src/main/webapp/WEB-INF/uploaded/ignore create mode 100644 src/main/webapp/WEB-INF/views/admin/admin_data.jsp create mode 100644 src/main/webapp/WEB-INF/views/todo/todo_form_test.jsp diff --git a/pom.xml b/pom.xml index ca94deb..81e8692 100644 --- a/pom.xml +++ b/pom.xml @@ -44,8 +44,23 @@ org.aspectj aspectjrt ${org.aspectj-version} - - + + + + org.aspectj + aspectjweaver + ${org.aspectj-version} + + + + + org.apache.commons + commons-lang3 + 3.10 + + + + org.slf4j @@ -138,6 +153,20 @@ 2.7.0 + + + com.opencsv + opencsv + 5.1 + + + + + commons-fileupload + commons-fileupload + 1.4 + + diff --git a/src/main/java/co/nook/app/DefaultTodo/dao/DefaultTodoDao.java b/src/main/java/co/nook/app/DefaultTodo/dao/DefaultTodoDao.java new file mode 100644 index 0000000..e34cf7e --- /dev/null +++ b/src/main/java/co/nook/app/DefaultTodo/dao/DefaultTodoDao.java @@ -0,0 +1,71 @@ +package co.nook.app.DefaultTodo.dao; + +import co.nook.app.DefaultTodo.service.DefaultTodoMapper; +import co.nook.app.DefaultTodo.service.DefaultTodoService; +import co.nook.app.DefaultTodo.vo.DefaultTodoVo; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Repository; + +import java.util.ArrayList; + +@Repository("defaultTodoDao") +public class DefaultTodoDao implements DefaultTodoService{ + + JdbcTemplate jdbcTemplate; + + public DefaultTodoDao( JdbcTemplate jdbcTemplate){ + this.jdbcTemplate = jdbcTemplate; + } + + private final String SELECT_ALL = "SELECT * from defaultTodo"; + @Override + public ArrayList selectAll(){ + return (ArrayList)jdbcTemplate.query(SELECT_ALL , new DefaultTodoMapper()); + } + + @Override + public DefaultTodoVo select(int key){ + return null; + } + + private final String INSERT = "INSERT INTO defaultTodo " + + "values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; + @Override + public int insert(DefaultTodoVo vo){ + return jdbcTemplate.update(INSERT, + vo.getdTodoNo(), + vo.getdIsAlways(), + vo.getdContent(), + vo.getdDay(), + vo.getdMinCount(), + vo.getdMaxCount(), + vo.getdNpcName(), + vo.getdIsEvent(), + vo.getdEventStartDate(), + vo.getdEventStartHour(), + vo.getdEventEndDate(), + vo.getdEventEndHour(), + vo.getdSpecialFunction(), + vo.getdSpecialData1(), + vo.getdSpecialData2(), + vo.getdSpecialData3(), + vo.getdSpecialData4() + ); + } + + @Override + public int update(DefaultTodoVo vo){ + return 0; + } + + @Override + public int delete(int key){ + return 0; + } + + private final String TRUNCATE = "TRUNCATE TABLE defaultTodo"; + @Override + public void truncate(){ + jdbcTemplate.update(TRUNCATE); + } +} diff --git a/src/main/java/co/nook/app/DefaultTodo/service/DefaultTodoMapper.java b/src/main/java/co/nook/app/DefaultTodo/service/DefaultTodoMapper.java new file mode 100644 index 0000000..9898126 --- /dev/null +++ b/src/main/java/co/nook/app/DefaultTodo/service/DefaultTodoMapper.java @@ -0,0 +1,34 @@ +package co.nook.app.DefaultTodo.service; + +import co.nook.app.DefaultTodo.vo.DefaultTodoVo; +import org.springframework.jdbc.core.RowMapper; + +import java.sql.ResultSet; +import java.sql.SQLException; + +public class DefaultTodoMapper implements RowMapper{ + @Override + public DefaultTodoVo mapRow(ResultSet rs, int rowNum) throws SQLException{ + DefaultTodoVo vo = new DefaultTodoVo(); + + vo.setdTodoNo(rs.getInt("dTodoNo")); + vo.setdIsAlways(rs.getString("dIsAlways")); + vo.setdContent(rs.getString("dContent")); + vo.setdDay(rs.getString("dDay")); + vo.setdMinCount(rs.getInt("dMinCount")); + vo.setdMaxCount(rs.getInt("dMaxCount")); + vo.setdNpcName(rs.getString("dNpcName")); + vo.setdIsEvent(rs.getString("dIsEvent")); + vo.setdEventStartDate(rs.getString("dEventStartDate")); + vo.setdEventStartHour(rs.getInt("dEventStartHour")); + vo.setdEventEndDate(rs.getString("dEventEndDate")); + vo.setdEventEndHour(rs.getInt("dEventEndHour")); + vo.setdSpecialFunction(rs.getString("dSpecialFunction")); + vo.setdSpecialData1(rs.getString("dSpecialData1")); + vo.setdSpecialData2(rs.getString("dSpecialData2")); + vo.setdSpecialData3(rs.getString("dSpecialData3")); + vo.setdSpecialData4(rs.getString("dSpecialData4")); + + return vo; + } +} diff --git a/src/main/java/co/nook/app/DefaultTodo/service/DefaultTodoService.java b/src/main/java/co/nook/app/DefaultTodo/service/DefaultTodoService.java new file mode 100644 index 0000000..450bd3f --- /dev/null +++ b/src/main/java/co/nook/app/DefaultTodo/service/DefaultTodoService.java @@ -0,0 +1,15 @@ +package co.nook.app.DefaultTodo.service; + +import co.nook.app.DefaultTodo.vo.DefaultTodoVo; + +import java.util.ArrayList; + +public interface DefaultTodoService{ + public ArrayList selectAll(); + public DefaultTodoVo select(int key); + public int insert(DefaultTodoVo vo); + public int update(DefaultTodoVo vo); + public int delete(int key); + public void truncate(); + +} diff --git a/src/main/java/co/nook/app/DefaultTodo/service/DefaultTodoServiceImpl.java b/src/main/java/co/nook/app/DefaultTodo/service/DefaultTodoServiceImpl.java new file mode 100644 index 0000000..eef1cfa --- /dev/null +++ b/src/main/java/co/nook/app/DefaultTodo/service/DefaultTodoServiceImpl.java @@ -0,0 +1,51 @@ +package co.nook.app.DefaultTodo.service; + +import co.nook.app.DefaultTodo.dao.DefaultTodoDao; +import co.nook.app.DefaultTodo.vo.DefaultTodoVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; + +@Service("defaultTodoService") +public class DefaultTodoServiceImpl implements DefaultTodoService{ + + public DefaultTodoDao defaultTodoDao; + + @Autowired + public DefaultTodoServiceImpl(DefaultTodoDao defaultTodoDao){ + this.defaultTodoDao = defaultTodoDao; + } + + + @Override + public ArrayList selectAll(){ + return defaultTodoDao.selectAll(); + } + + @Override + public DefaultTodoVo select(int key){ + return defaultTodoDao.select(key); + } + + @Override + public int insert(DefaultTodoVo vo){ + return defaultTodoDao.insert(vo); + } + + @Override + public int update(DefaultTodoVo vo){ + return defaultTodoDao.update(vo); + } + + @Override + public int delete(int key){ + return defaultTodoDao.delete(key); + } + + @Override + public void truncate(){ + defaultTodoDao.truncate(); + } +} diff --git a/src/main/java/co/nook/app/DefaultTodo/vo/DefaultTodoVo.java b/src/main/java/co/nook/app/DefaultTodo/vo/DefaultTodoVo.java new file mode 100644 index 0000000..6660e38 --- /dev/null +++ b/src/main/java/co/nook/app/DefaultTodo/vo/DefaultTodoVo.java @@ -0,0 +1,157 @@ +package co.nook.app.DefaultTodo.vo; + +public class DefaultTodoVo{ + private int dTodoNo; + private String dIsAlways; + private String dContent; + private String dDay; + private Integer dMinCount; + private Integer dMaxCount; + private String dNpcName; + private String dIsEvent; + private String dEventStartDate; + private Integer dEventStartHour; + private String dEventEndDate; + private Integer dEventEndHour; + private String dSpecialFunction; + private String dSpecialData1; + private String dSpecialData2; + private String dSpecialData3; + private String dSpecialData4; + + public int getdTodoNo(){ + return dTodoNo; + } + + public void setdTodoNo(int dTodoNo){ + this.dTodoNo = dTodoNo; + } + + public String getdIsAlways(){ + return dIsAlways; + } + + public void setdIsAlways(String dIsAlways){ + this.dIsAlways = dIsAlways; + } + + public String getdContent(){ + return dContent; + } + + public void setdContent(String dContent){ + this.dContent = dContent; + } + + public String getdDay(){ + return dDay; + } + + public void setdDay(String dDay){ + this.dDay = dDay; + } + + public Integer getdMinCount(){ + return dMinCount; + } + + public void setdMinCount(Integer dMinCount){ + this.dMinCount = dMinCount; + } + + public Integer getdMaxCount(){ + return dMaxCount; + } + + public void setdMaxCount(Integer dMaxCount){ + this.dMaxCount = dMaxCount; + } + + public String getdNpcName(){ + return dNpcName; + } + + public void setdNpcName(String dNpcName){ + this.dNpcName = dNpcName; + } + + public String getdIsEvent(){ + return dIsEvent; + } + + public void setdIsEvent(String dIsEvent){ + this.dIsEvent = dIsEvent; + } + + public String getdEventStartDate(){ + return dEventStartDate; + } + + public void setdEventStartDate(String dEventStartDate){ + this.dEventStartDate = dEventStartDate; + } + + public Integer getdEventStartHour(){ + return dEventStartHour; + } + + public void setdEventStartHour(Integer dEventStartHour){ + this.dEventStartHour = dEventStartHour; + } + + public String getdEventEndDate(){ + return dEventEndDate; + } + + public void setdEventEndDate(String dEventEndDate){ + this.dEventEndDate = dEventEndDate; + } + + public Integer getdEventEndHour(){ + return dEventEndHour; + } + + public void setdEventEndHour(Integer dEventEndHour){ + this.dEventEndHour = dEventEndHour; + } + + public String getdSpecialFunction(){ + return dSpecialFunction; + } + + public void setdSpecialFunction(String dSpecialFunction){ + this.dSpecialFunction = dSpecialFunction; + } + + public String getdSpecialData1(){ + return dSpecialData1; + } + + public void setdSpecialData1(String dSpecialData1){ + this.dSpecialData1 = dSpecialData1; + } + + public String getdSpecialData2(){ + return dSpecialData2; + } + + public void setdSpecialData2(String dSpecialData2){ + this.dSpecialData2 = dSpecialData2; + } + + public String getdSpecialData3(){ + return dSpecialData3; + } + + public void setdSpecialData3(String dSpecialData3){ + this.dSpecialData3 = dSpecialData3; + } + + public String getdSpecialData4(){ + return dSpecialData4; + } + + public void setdSpecialData4(String dSpecialData4){ + this.dSpecialData4 = dSpecialData4; + } +} diff --git a/src/main/java/co/nook/app/DefaultTodo/web/DefaultTodoController.java b/src/main/java/co/nook/app/DefaultTodo/web/DefaultTodoController.java new file mode 100644 index 0000000..7616307 --- /dev/null +++ b/src/main/java/co/nook/app/DefaultTodo/web/DefaultTodoController.java @@ -0,0 +1,267 @@ +package co.nook.app.DefaultTodo.web; + +import co.nook.app.DefaultTodo.service.DefaultTodoService; +import co.nook.app.DefaultTodo.vo.DefaultTodoVo; +import com.opencsv.CSVReader; +import com.opencsv.exceptions.CsvValidationException; +import org.apache.commons.lang3.BooleanUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.math.NumberUtils; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import java.io.*; +import java.util.ArrayList; + +@Controller +public class DefaultTodoController{ + + private DefaultTodoService defaultTodoService; + + public DefaultTodoController(DefaultTodoService defaultTodoService){ + this.defaultTodoService = defaultTodoService; + } + + @RequestMapping("/adminDataInsertPage.do") + public String adminDataInsertPage(Model model){ + ArrayList list = defaultTodoService.selectAll(); + System.out.println("Size : " +list.size()); + model.addAttribute("list", list); + + return "admin/admin_data"; + } + + @Transactional + @ResponseBody + @RequestMapping(value = "/defaultDataInsert.do", method = RequestMethod.POST) + public String defaultDataInsert(HttpServletRequest request, MultipartFile file, Model model){ + if(!verifyDefaultTodoFile(file)) + return "invalid"; + + String path = request.getServletContext().getRealPath("\\WEB-INF\\uploaded\\"); + System.out.println(path); + String saveName = file.getOriginalFilename(); + File saveFile = new File(path, saveName); + boolean isSaved = false; + try{ + file.transferTo(saveFile); + isSaved = true; + }catch( IOException e){ + e.printStackTrace(); + } + try{ + if(isSaved){ + //TODO : 파일이 제대로된 데이터인지 검증하는 단계 필요 + InputStreamReader iReader =new InputStreamReader(file.getInputStream(), "UTF-8"); + //CSVReader reader = new CSVReader(new FileReader( path+"\\"+saveName)); + CSVReader reader = new CSVReader(iReader); + + defaultTodoService.truncate(); + String [] nextLine; + int line = 1; + while((nextLine = reader.readNext()) != null){ + + if(line > 3){ + DefaultTodoVo vo = csvLineToVo(nextLine); + defaultTodoService.insert(vo); + } + ++line; + } + iReader.close(); + } + }catch(CsvValidationException | IOException e){ + e.printStackTrace(); + } + + ArrayList list = defaultTodoService.selectAll(); + model.addAttribute("list", list); + + return String.valueOf(isSaved); + } + private DefaultTodoVo csvLineToVo(String[] line){ + DefaultTodoVo vo = new DefaultTodoVo(); + vo.setdTodoNo(Integer.valueOf(line[0])); + vo.setdIsAlways(line[1].toUpperCase().trim()); + vo.setdContent(line[2].trim()); + vo.setdDay(line[3].trim()); + vo.setdMinCount( line[4].isEmpty()? null: Integer.valueOf(line[4]) ); + vo.setdMaxCount( line[5].isEmpty()? null : Integer.valueOf(line[5]) ); + vo.setdNpcName(line[6].trim()); + vo.setdIsEvent(line[7].toUpperCase().trim()); + vo.setdEventStartDate(line[8].isEmpty()? null : line[8].trim()); + vo.setdEventStartHour(line[9].isEmpty()? null: Integer.valueOf(line[9])); + vo.setdEventEndDate(line[10].isEmpty()? null: line[10].trim()); + vo.setdEventEndHour(line[11].isEmpty()? null: Integer.valueOf(line[11])); + vo.setdSpecialFunction(line[12].isEmpty()? null: line[12].trim()); + vo.setdSpecialData1(line[13].isEmpty()? null: line[13].trim()); + vo.setdSpecialData2(line[14].isEmpty()? null: line[14].trim()); + vo.setdSpecialData3(line[15].isEmpty()? null: line[15].trim()); + vo.setdSpecialData4(line[16].isEmpty()? null: line[16].trim()); + + return vo; + } + + private boolean verifyDefaultTodoFile(MultipartFile file){ + + try{ + InputStreamReader iReader =new InputStreamReader(file.getInputStream(), "UTF-8"); + CSVReader reader = new CSVReader(iReader); + String[] lines; + + int line = 1; + while((lines = reader.readNext()) != null){ + if( line > 3){ + if((! lines[0].isEmpty() && NumberUtils.isCreatable(lines[0])) == false){ + System.out.println(1); + System.out.println(lines[0]); + reader.close(); + return false; + } + if((! lines[1].isEmpty() && isStringBoolean(lines[1])) == false){ + System.out.println(2); + System.out.println(lines[1]); + reader.close(); + return false; + } + if((! lines[2].isEmpty()) == false){ + System.out.println(3); + System.out.println(lines[2]); + reader.close(); + return false; + } + if((! lines[3].isEmpty() && isStringDay(lines[3])) == false){ + System.out.println(4); + System.out.println(lines[3]); + reader.close(); + return false; + } + if(! lines[4].isEmpty()){ + if(NumberUtils.isCreatable(lines[4]) == false){ + System.out.println(5); + System.out.println(lines[4]); + reader.close(); + return false; + } + } + if(! lines[5].isEmpty()){ + if(NumberUtils.isCreatable(lines[5]) == false){ + System.out.println(6); + System.out.println(lines[5]); + reader.close(); + return false; + } + } + if((! lines[7].isEmpty() && isStringBoolean(lines[7])) == false){ + System.out.println(7); + System.out.println(lines[7]); + reader.close(); + return false; + } + + if(! lines[8].isEmpty()){ + if(! isValidDate(lines[8])){ + System.out.println(8); + System.out.println(lines[8]); + reader.close(); + return false; + } + } + + if(! lines[9].isEmpty()){ + if(! NumberUtils.isCreatable(lines[9])){ + System.out.println(9); + System.out.println(lines[9]); + reader.close(); + return false; + } + } + + if(! lines[10].isEmpty()){ + if(! isValidDate(lines[10])){ + System.out.println(10); + System.out.println(lines[10]); + reader.close(); + return false; + } + } + if(! lines[11].isEmpty()){ + if(! NumberUtils.isCreatable(lines[11])){ + System.out.println(11); + System.out.println(lines[11]); + reader.close(); + return false; + } + } + } + ++line; + } + + reader.close(); + return true; + }catch(Exception e){ + e.printStackTrace(); + return false; + } + } + + private boolean isStringBoolean(String str){ + String temp = str.toLowerCase(); + + if( temp.equals("true") || temp.equals("false")){ + return true; + } + + return false; + } + final String[] days = {"월","화","수","목","금","토","일"}; + private boolean isStringDay(String str){ + String[] strings = str.split(","); + for( int i = 0 ; i < strings.length; ++i){ + strings[i] = strings[i].trim(); + if ( !StringUtils.containsAny(strings[i], days) ) + return false; + } + return true; + } + + private boolean isValidDate(String str){ + + + str = str.replace(" ","" ); + String[] strings = str.split(","); + if(strings.length != 2) + return false; + + + String[] temp = strings[0].split("/"); + if( temp.length != 2) + return false; + + if(!NumberUtils.isCreatable(temp[0]) || !NumberUtils.isCreatable(temp[1])) + return false; + int left = Integer.parseInt(temp[0]); + int right = Integer.parseInt(temp[1]); + if(left > 99 || left < 1 || right > 99 || right < 1) + return false; + + temp = strings[1].split("/"); + if( temp.length != 2) + return false; + + if(!NumberUtils.isCreatable(temp[0]) || !NumberUtils.isCreatable(temp[1])) + return false; + left = Integer.parseInt(temp[0]); + right = Integer.parseInt(temp[1]); + if(left > 99 || left < 1 || right > 99 || right < 1) + return false; + + return true; + + } +} diff --git a/src/main/java/co/nook/app/HomeController.java b/src/main/java/co/nook/app/HomeController.java index e9c7abe..b7ea533 100644 --- a/src/main/java/co/nook/app/HomeController.java +++ b/src/main/java/co/nook/app/HomeController.java @@ -33,7 +33,7 @@ public class HomeController { model.addAttribute("serverTime", formattedDate ); - return "login/login_form"; + return "home"; } } diff --git a/src/main/java/co/nook/app/user/dao/UserDao.java b/src/main/java/co/nook/app/user/dao/UserDao.java index 8bd564c..82dfa71 100644 --- a/src/main/java/co/nook/app/user/dao/UserDao.java +++ b/src/main/java/co/nook/app/user/dao/UserDao.java @@ -32,6 +32,7 @@ public class UserDao implements UserService{ final String SELECT_BY_ID = "select * from user where id = ?"; @Override public UserVo select( String id ){ + try { return jdbcTemplate.queryForObject(SELECT_BY_ID, new UserMapper(), id ); } catch (EmptyResultDataAccessException e) { diff --git a/src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml b/src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml index 1b230f2..0e91119 100644 --- a/src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml +++ b/src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml @@ -20,6 +20,7 @@ + diff --git a/src/main/webapp/WEB-INF/spring/bean-context.xml b/src/main/webapp/WEB-INF/spring/bean-context.xml index e535336..5e572f3 100644 --- a/src/main/webapp/WEB-INF/spring/bean-context.xml +++ b/src/main/webapp/WEB-INF/spring/bean-context.xml @@ -3,7 +3,6 @@ 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"> - - + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/spring/root-context.xml b/src/main/webapp/WEB-INF/spring/root-context.xml index bdd6dca..e8cb674 100644 --- a/src/main/webapp/WEB-INF/spring/root-context.xml +++ b/src/main/webapp/WEB-INF/spring/root-context.xml @@ -1,7 +1,15 @@ + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:tx="http://www.springframework.org/schema/tx" + xmlns:aop="http://www.springframework.org/schema/aop" + + xsi:schemaLocation="http://www.springframework.org/schema/beans + https://www.springframework.org/schema/beans/spring-beans.xsd + http://www.springframework.org/schema/tx + http://www.springframework.org/schema/tx/spring-tx.xsd + http://www.springframework.org/schema/aop + https://www.springframework.org/schema/aop/spring-aop.xsd"> @@ -12,7 +20,6 @@ - @@ -21,4 +28,22 @@ + + + + + + + diff --git a/src/main/webapp/WEB-INF/uploaded/ignore b/src/main/webapp/WEB-INF/uploaded/ignore new file mode 100644 index 0000000..e69de29 diff --git a/src/main/webapp/WEB-INF/views/admin/admin_data.jsp b/src/main/webapp/WEB-INF/views/admin/admin_data.jsp new file mode 100644 index 0000000..5f67056 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admin/admin_data.jsp @@ -0,0 +1,127 @@ +<%-- + Created by IntelliJ IDEA. + User: Suh + Date: 2020-04-30 + Time: 오후 6:18 + To change this template use File | Settings | File Templates. +--%> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> + + + Title + + + + + + + + + +
+
+
+

기본 할일 테이블 입력

+
+
+
+
+
+ + +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TodoNoIsAlwaysContentDayMinCountMaxCountNPCNameIsEventEventStartDateEventStartHourEventEndDateEventEndHourSpecialFunctionSpecialData1SpecialData2SpecialData3SpecialData4
${item.dTodoNo}${item.dIsAlways}${item.dContent}${item.dDay}${item.dMinCount}${item.dMaxCount}${item.dNpcName}${item.dIsEvent}${item.dEventStartDate}${item.dEventStartHour}${item.dEventEndDate}${item.dEventEndHour}${item.dSpecialFunction}${item.dSpecialData1}${item.dSpecialData2}${item.dSpecialData3}${item.dSpecialData4}
+
+
+
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/home.jsp b/src/main/webapp/WEB-INF/views/home.jsp index 28e022a..4e0098a 100644 --- a/src/main/webapp/WEB-INF/views/home.jsp +++ b/src/main/webapp/WEB-INF/views/home.jsp @@ -10,6 +10,5 @@ - diff --git a/src/main/webapp/WEB-INF/views/todo/todo_form.jsp b/src/main/webapp/WEB-INF/views/todo/todo_form.jsp index 3b7a7c3..736fbea 100644 --- a/src/main/webapp/WEB-INF/views/todo/todo_form.jsp +++ b/src/main/webapp/WEB-INF/views/todo/todo_form.jsp @@ -17,10 +17,10 @@ - diff --git a/src/main/webapp/WEB-INF/views/todo/todo_form_test.jsp b/src/main/webapp/WEB-INF/views/todo/todo_form_test.jsp new file mode 100644 index 0000000..fbfd64f --- /dev/null +++ b/src/main/webapp/WEB-INF/views/todo/todo_form_test.jsp @@ -0,0 +1,16 @@ +<%-- + Created by IntelliJ IDEA. + User: Suh + Date: 2020-05-04 + Time: 오전 5:24 + To change this template use File | Settings | File Templates. +--%> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + Title + + + + + diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml index 5d721dc..4893f8d 100644 --- a/src/main/webapp/WEB-INF/web.xml +++ b/src/main/webapp/WEB-INF/web.xml @@ -31,4 +31,21 @@ *.do + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + diff --git a/src/main/webapp/index.jsp b/src/main/webapp/index.jsp index ef35d79..f6b3b32 100644 --- a/src/main/webapp/index.jsp +++ b/src/main/webapp/index.jsp @@ -9,6 +9,6 @@ Title - +