Spring Framework 사용하기 (7)
12967 단어 SpringBootspring-bootspring
오사라이
준비
테이블 재작성
우선은, 전회까지 사용하고 있던 테이블을 일단 삭제해 아래와 같은 테이블 작성 스크립트를 실행합니다.
CREATE TABLE department (
id INTEGER PRIMARY KEY,
name VARCHAR(40)
);
CREATE TABLE user (
id INTEGER PRIMARY KEY,
name VARCHAR(40),
department_id INTEGER,
FOREIGN KEY (department_id)
REFERENCES department (id)
);
테이블에 데이터 삽입
INSERT INTO department (id,name)
VALUES (1,'人事部');
INSERT INTO department (id,name)
VALUES (2,'営業部');
INSERT INTO user (id,name,department_id)
VALUES (1,'田中',1);
INSERT INTO user (id,name,department_id)
VALUES (2,'佐藤',1);
INSERT INTO user (id,name,department_id)
VALUES (3,'鈴木',2);
모델 삭제
마지막 기사에서 만든 모델을 삭제합니다.
JPA를 사용하여 모델링
모델 만들기
전회와 마찬가지로 JPA를 사용하여 모델을 작성합니다.
“model” 패키지를 오른쪽 클릭 ⇒ “New” ⇒ “other…”를 선택합니다.
[Next]를 누릅니다.
[Next]를 누릅니다. 다음 화면의 [Package] 필드에 실제 Package 경로를 올바르게 입력하십시오.
마침을 누릅니다.
출력 내용 변경
로그인 후 마지막으로 출력한 이름뿐만 아니라 부서명을 출력합니다.
LoginController.javapackage com.example.HelloWorld;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import java.util.List;
import com.example.HelloWorld.model.User;
import com.example.HelloWorld.repository.UserRepository;
import com.example.HelloWorld.validation.CheckOrder;
@Controller
public class LoginController {
// @Autowired
//// UserService userService;
@Autowired
private UserRepository userRep;
@RequestMapping(value = "/login", method = RequestMethod.POST)
public String login(Model model, @Validated(CheckOrder.class) @ModelAttribute("loginForm") LoginForm loginForm, BindingResult result) {
if(result.hasErrors()) {
return "index";
}
List<User> userList = userRep.findById(loginForm.getUserId());
if(userList.size() > 0) {
model.addAttribute("userName", userList.get(0).getName());
model.addAttribute("departmentName", userList.get(0).getDepartment().getName());
return "top";
} else {
return "index";
}
}
}
top.jsp 편집
설정한 부서명을 화면에 출력합니다.
top.jsp를 아래와 같이 변경합니다.
top.jsp<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<html>
<head>
<meta charset="utf-8">
<title>トップ</title>
</head>
<body>
ようこそ<c:out value="${departmentName}" />の<c:out value="${userName}" />さん
</body>
</html>
실행 결과
실행
사용자 ID에 2를 입력합니다. 로그인을 누르십시오.
tips
index.jsp의 패스워드의 input type="password"로 하면(자), 패스워드는 입력시에 숨겨집니다.
참고한 링크
다음 번
다음에는 Spring security를 이용한 사용자 인증을 소개합니다.
Reference
이 문제에 관하여(Spring Framework 사용하기 (7)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Hakata2002/items/cb87b987aa97a423effa
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
CREATE TABLE department (
id INTEGER PRIMARY KEY,
name VARCHAR(40)
);
CREATE TABLE user (
id INTEGER PRIMARY KEY,
name VARCHAR(40),
department_id INTEGER,
FOREIGN KEY (department_id)
REFERENCES department (id)
);
INSERT INTO department (id,name)
VALUES (1,'人事部');
INSERT INTO department (id,name)
VALUES (2,'営業部');
INSERT INTO user (id,name,department_id)
VALUES (1,'田中',1);
INSERT INTO user (id,name,department_id)
VALUES (2,'佐藤',1);
INSERT INTO user (id,name,department_id)
VALUES (3,'鈴木',2);
package com.example.HelloWorld;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import java.util.List;
import com.example.HelloWorld.model.User;
import com.example.HelloWorld.repository.UserRepository;
import com.example.HelloWorld.validation.CheckOrder;
@Controller
public class LoginController {
// @Autowired
//// UserService userService;
@Autowired
private UserRepository userRep;
@RequestMapping(value = "/login", method = RequestMethod.POST)
public String login(Model model, @Validated(CheckOrder.class) @ModelAttribute("loginForm") LoginForm loginForm, BindingResult result) {
if(result.hasErrors()) {
return "index";
}
List<User> userList = userRep.findById(loginForm.getUserId());
if(userList.size() > 0) {
model.addAttribute("userName", userList.get(0).getName());
model.addAttribute("departmentName", userList.get(0).getDepartment().getName());
return "top";
} else {
return "index";
}
}
}
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<html>
<head>
<meta charset="utf-8">
<title>トップ</title>
</head>
<body>
ようこそ<c:out value="${departmentName}" />の<c:out value="${userName}" />さん
</body>
</html>
Reference
이 문제에 관하여(Spring Framework 사용하기 (7)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Hakata2002/items/cb87b987aa97a423effa텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)