Spring에서 MySQL을 이용해보기(Part 3: 컨트롤러와 뷰)
Part 2: 데이터 저장을 위한 클래스 만들기
Part 3(최종회)에서는 컨트롤러와 뷰에 대해 설명하고 싶습니다.
구체적으로는 다음 폴더 구조에서 MainController.java, index.jsp, saved.jsp 코드를 소개하고 싶습니다.
컨트롤러에는 세 가지 방법이 정의되어 있습니다.
index 메소드
루트(localhost의 경우 localhost:8080)에 액세스할 때 처리
index.jsp(홈페이지)를 표시합니다.
showAllUsers 메서드
/all에 액세스할 때 처리
먼저 빈 문자열을 준비하고 for 루프를 이용하여 각 사용자의 이름과 이메일 주소를 추가합니다. 마지막으로 생성된 String을 ResponseBody로 반환하여 데이터베이스에 등록된 사용자 목록을 표시합니다.
addUser 메서드
양식의 추가 버튼을 누르면 처리
Form 클래스의 객체에 저장된 입력 데이터를 데이터베이스로 데이터로 이동합니다. 데이터를 저장한 후 saved.jsp로 이동하여 등록된 이름과 이메일 주소를 표시합니다.
코드
MainController.java
package com.example;
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.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class MainController {
// This means to get the bean called userRepository
// Which is auto-generated by Spring, we will use it to handle the data
@Autowired
private UserRepository userRepository;
@RequestMapping(value = "/", method = RequestMethod.GET)
public String index(Model model) {
return "index";
}
@GetMapping("/all")
public @ResponseBody String getAllUsers() {
String body = "";
for (User user : userRepository.findAll()) {
body += user.getName() + ": " + user.getEmail() + "<br>";
}
return body;
}
@RequestMapping(value = "/add", method = RequestMethod.POST)
public String addUser(
Model model, @ModelAttribute("loginForm") Form form
) {
model.addAttribute("name", form.getUserName());
model.addAttribute("email", form.getUserEmail());
User n = new User();
n.setName(form.getUserName());
n.setEmail(form.getUserEmail());
userRepository.save(n);
return "saved";
}
}
보기
다음은 뷰의 코드입니다.
양식(index.jsp)
<%@ page language="java"
contentType="text/html;charset=UTF-8"
pageEncoding="UTF-8" %>
<%@ taglib prefix="f" uri="http://www.springframework.org/tags/form"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>From</title>
</head>
<body>
<a href="/all">Show users</a>
<f:form modelAttribute="form" action="add" method="post">
<div>
<label for="userName">Name: </label>
<input type="text" id="userName" name="userName">
</div>
<div>
<label for="userEmail">Email: </label>
<input type="text" id="userEmail" name="userEmail">
</div>
<div>
<input type="submit" value="Add">
</div>
</f:form>
</body>
</html>
데이터 등록 완료 화면(saved.jsp)
<%@ page language="java"
contentType="text/html;charset=UTF-8"
pageEncoding="UTF-8" %>
<%@ taglib prefix="f" uri="http://www.springframework.org/tags/form"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>From</title>
</head>
<body>
<p>Saved</p>
<p>Name: ${name}</p>
<p>Email: ${email}</p>
<a href="/">Home</a>
</body>
</html>
실행
프로젝트를 실행하기 위해 Application.java를 만듭니다.
package com.example;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
생성이 끝나면 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 Run As-> Spring Boot App을 선택합니다.
이 상태에서 localhost:8080에 액세스하면 다음 홈페이지가 표시됩니다.
Reference
이 문제에 관하여(Spring에서 MySQL을 이용해보기(Part 3: 컨트롤러와 뷰)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shoko93/items/106ae5d07fb406f46d1a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)