728x90
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="input_test">input_test</a><br>
<a href="read_test">read_test</a>
</body>
</html>
ServeletAppContext.java
package kr.bit.config;
import org.apache.commons.dbcp2.BasicDataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.mapper.MapperFactoryBean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.ViewResolverRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import kr.bit.database.MapperInterface;
@Configuration
@EnableWebMvc
@ComponentScan("kr.bit.controller")
@PropertySource("/WEB-INF/properties/db.properties")
public class ServletAppContext implements WebMvcConfigurer{ //servlet-context.xml 과 역할이 같다.
@Value("${db.classname}")
private String db_classname;
@Value("${db.url}")
private String db_url;
@Value("${db.username}")
private String db_username;
@Value("${db.password}")
private String db_password;
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
WebMvcConfigurer.super.configureViewResolvers(registry);
registry.jsp("/WEB-INF/views/", ".jsp");
}
public void addResourceHandlers(ResourceHandlerRegistry registry) {
WebMvcConfigurer.super.addResourceHandlers(registry);
registry.addResourceHandler("/**").addResourceLocations("/resources/");
}
//mybatis setting
@Bean
public BasicDataSource dataSource() {
BasicDataSource source = new BasicDataSource();
source.setDriverClassName(db_classname);
//주소를 직접 치지않고, 위에서 주입받은 값 그대로!
source.setUrl(db_url);
source.setUsername(db_username);
source.setPassword(db_password);
return source;
}
@Bean
public SqlSessionFactory factory(BasicDataSource source) throws Exception {
SqlSessionFactoryBean fac = new SqlSessionFactoryBean();
fac.setDataSource(source);
SqlSessionFactory factory = fac.getObject();
return factory;
}
@Bean
public MapperFactoryBean<MapperInterface> test_mapper(SqlSessionFactory factory) throws Exception {
MapperFactoryBean<MapperInterface> fac =
new MapperFactoryBean<MapperInterface>(MapperInterface.class);
fac.setSqlSessionFactory(factory);
return fac;
}
/* //Properties파일을 jsp화면에 가져가기 위해 등록해야함
@Bean(name = "messageSource")
public ReloadableResourceBundleMessageSource source() {
ReloadableResourceBundleMessageSource res =
new ReloadableResourceBundleMessageSource();
//res.setBasename(null);
res.setBasename("/WEB-INF/properties/error");
return res;*/
}
Controller
package kr.bit.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import kr.bit.beans.Data;
import kr.bit.database.MapperInterface;
@Controller //bean으로 등록.
public class SpringController {
@Autowired
MapperInterface mapper;
@GetMapping("/input_test")
public String input_test(Data data) {
return "input_test";
}
@PostMapping("/input_proc")
public String input_proc(Data data) {
mapper.insert_data(data); //db에 저장 num1,num2,num3
return "input_proc";
}
@GetMapping("/read_test")
public String read_test(Model model) {
List<Data> li = mapper.select_data();
model.addAttribute("li", li);
return "read_test";
}
}
input_test.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action = "input_proc" method = "post">
<!-- num 1,2,3에 입력한 값을 Data클래스 필드에 넣기 -->
num1 : <input type="text" name="num1"><br>
num2 : <input type="text" name="num2"><br>
num3 : <input type="text" name="num3"><br>
<button type = "submit">check</button>
</form>
</body>
</html>
input_proc.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
저장끝
</body>
</html>
MySql DB
완료된것들을 read_test를 통해서 출력해보면
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:forEach var="obj" items="${li}">
${obj.num1}
${obj.num2}
${obj.num3}<br>
</c:forEach>
<%-- ${li.get(0).num1}<br>
${li.get(0).num2}<br>
${li.get(0).num3}
--%>
</body>
</html>
728x90
'Frameworks > Spring' 카테고리의 다른 글
[Spring] MVC (MyBatis with XML) (0) | 2024.05.13 |
---|---|
[Spring] MVC (Restcontroller) (2) | 2024.05.13 |
[Spring] MVC (Interceptor) (0) | 2024.05.12 |
[Spring] Validator Customizing (0) | 2024.05.10 |
[Spring] Type of JSR Annotations (0) | 2024.05.10 |