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

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

+ Recent posts