결과물
sql문 부터 mapper에서 작성 (Tb_Project_SQL)
insert문 <mapper></mapper> 사이에 추가
<>안에 insert인 것 확인
<insert id="insertProject">
INSERT INTO TEST (
USERNUM,
NAME,
AGE
) VALUES (
#{usernum},
#{name},
#{age}
)
</insert>
service에 insert 추가 (com.project.service 패키지에 ProjectService)
package com.project.service;
import java.util.List;
import com.project.vo.ProjectVO;
public interface ProjectService {
List<ProjectVO> selectProjectList() throws Exception;
void insertProject(ProjectVO projectVO); //추가된부분
}
com.project.service.impl 패키지에 ProjectServiceImpl
package com.project.service.impl;
import java.util.List;
import javax.inject.Inject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import com.project.service.ProjectService;
import com.project.service.dao.ProjectDAO;
import com.project.vo.ProjectVO;
@Service("ProjectService")
public class ProjectServiceImpl implements ProjectService{
@Autowired
private ProjectDAO projectMapper;
@Override
public List<ProjectVO> selectProjectList() throws Exception {
// TODO Auto-generated method stub
return projectMapper.selectProjectList();
}
@Override
public void insertProject(ProjectVO projectVO) { // 추가된부분
// TODO Auto-generated method stub
projectMapper.insertProject(projectVO);
}
}
com.project.controller 패키지에 HomeController
package com.project.controller;
import java.text.DateFormat;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import javax.annotation.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.project.service.ProjectService;
import com.project.vo.ProjectVO;
import lombok.RequiredArgsConstructor;
/**
* Handles requests for the application home page.
*/
@Controller
@RequiredArgsConstructor
public class HomeController {
@Resource(name = "ProjectService")
private ProjectService projectService;
private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
/**
* Simply selects the home view to render by returning its name.
*/
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Locale locale, Model model) {
logger.info("Welcome home! The client locale is {}.", locale);
Date date = new Date();
DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
String formattedDate = dateFormat.format(date);
model.addAttribute("serverTime", formattedDate );
return "home";
}
@RequestMapping(value = "/projectList")
public String projectList(Model model) throws Exception {
List<ProjectVO> list = projectService.selectProjectList();
logger.info(list.toString());
model.addAttribute("list", list);
return "projectList";
}
// 게시판 글등록 (추가된부분)
@RequestMapping(value = "/projectRegisterForm")
public String projectRegisterForm(@ModelAttribute("projectVO") ProjectVO projectVO, Model model) throws Exception {
return "projectRegisterForm";
}
// 글 등록하기 (추가된부분)
@RequestMapping(value = "/projectInsert")
public String projectInsert(@ModelAttribute("projectVO") ProjectVO projectVO, Model model) {
projectService.insertProject(projectVO);
return "redirect:/projectList";
}
}
src/main/webapp/WEB-INF/views에 projectRegisterForm.jsp 생성
<!--한글등록-->
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<!-- src/main/webapp/WEB-INF/view/projectRegisterForm.jsp -->
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr"/>
<title>Home</title>
</head>
<body>
<h1>Project Register</h1>
<c:url var="insertUrl" value="/projectInsert" />
<form:form commandName="projectVO" action="${insertUrl}" name="projectVO" method="post">
<table>
<tbody>
<tr>
<th>번호</th>
<td><form:input path="usernum" id="usernum" size="20" maxlength="10" /></td>
</tr>
<tr>
<th>이름</th>
<td><form:input path="name" id="name" size="20" maxlength="10" /></td>
</tr>
<tr>
<th>나이</th>
<td><form:input path="age" id="age" size="20" maxlength="3" /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="등록" /></td>
</tr>
</tbody>
</table>
</form:form>
</body>
</html>
src/main/webapp/WEB-INF/views에 home.jsp에 a 태그로 글 등록하는 페이지 링크생성
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ page session="false" %>
<html>
<head>
<title>Home</title>
</head>
<body>
<h1>
Hello world!
</h1>
<P> The time on the server is ${serverTime}. </P>
<a href="projectList">move to list</a> <br>
<a href="projectRegisterForm">register</a> //추가된부분
</body>
</html>
웹에서 값 입력시 DB에 한글이 깨지는 현상이 발생했고 검색 후 해당방법을 찾게 되었다
src/main/webapp/WEB-INF/web.xml에 맨 밑에 </web-app> 바로 위에 해당 코드 입력
<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>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
'Spring 게시판 기초' 카테고리의 다른 글
프로젝트 다운로드후 링크 눌렀을때 404 error (0) | 2022.10.05 |
---|---|
2. 출력해보기 (2) | 2022.10.01 |
1. Oracle 연동하기 (0) | 2022.10.01 |
0. 프로젝트 생성 (0) | 2022.10.01 |
댓글