Spring Framework 사용하기 (4)
13559 단어 STSspring-boot
입력 값 검사 구현
pom 편집
pom.xml에 추가합니다.
pom.xml <dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.2.4.Final</version>
</dependency>
체크 순서용 인터페이스 작성
확인할 순서의 인터페이스를 만듭니다.
첫 체크를 'CheckOrder1.java'
두 번째 체크를 "CheckOrder2.java"
정리한 체크를 「CheckOrder.java」로서 「src/main/java/com/example/HelloWorld/Validation」안에 작성합니다.
CheckOrder1.javapackage com.example.HelloWorld.Validation;
public interface CheckOrder1 {
}
CheckOrder2.javapackage com.example.HelloWorld.Validation;
public interface CheckOrder2 {
}
LoginForm 편집
LoginForm.javapackage com.example.HelloWorld;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import org.hibernate.validator.constraints.NotEmpty;
import com.example.HelloWorld.Validation.CheckOrder1;
import com.example.HelloWorld.Validation.CheckOrder2;
public class LoginForm {
@NotEmpty(groups={CheckOrder1.class},message="ユーザ名を入力してください。")
private String loginName;
@NotEmpty(groups={CheckOrder1.class},message="パスワードを入力してください。")
@Size(min=8,max=16,groups={CheckOrder2.class},message="パスワードは{min}文字以上{max}文字以下です。")
@Pattern(regexp="[a-zA-Z0-9]*",groups={CheckOrder2.class},message="パスワードは英数である必要があります。")
private String loginPassword;
public String getLoginName() {
return loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName;
}
public String getLoginPassword() {
return loginPassword;
}
public void setLoginPassword(String loginPassword) {
this.loginPassword = loginPassword;
}
}
LoginController 편집
LoginController.javapackage com.example.HelloWorld;
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 com.example.HelloWorld.Validation.CheckOrder;
@Controller
public class LoginController {
@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";
}
model.addAttribute("loginName", loginForm.getLoginName());
return "top";}
}
index.jsp 편집
index.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"%>
<%@ taglib prefix="f" uri="http://www.springframework.org/tags/form"%>
<html>
<head>
<meta charset="utf-8">
<title>ログイン</title>
</head>
<body>
<f:form modelAttribute="loginForm" action="login" method="post">
<div>
ユーザ名:<input type="text" id="loginName" name="loginName">
<f:errors path="loginName" element="div" cssStyle="color:red" />
</div>
<div>
パスワード:<input type="text" id="loginPassword" name="loginPassword">
<f:errors path="loginPassword" element="div" cssStyle="color:red" />
</div>
<div>
<input type="submit" value="ログイン">
</div>
</f:form>
</body>
</html>
위 설정이 완료되면 서버를 시작합니다.
시도로 입력이 잘못되면 아래 화면이 표시됩니다.
다음 번
데이터베이스 액세스 에 대해 설명합니다.
Reference
이 문제에 관하여(Spring Framework 사용하기 (4)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Hakata2002/items/1b6f2753e817e4eecc53
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.2.4.Final</version>
</dependency>
package com.example.HelloWorld.Validation;
public interface CheckOrder1 {
}
package com.example.HelloWorld.Validation;
public interface CheckOrder2 {
}
package com.example.HelloWorld;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import org.hibernate.validator.constraints.NotEmpty;
import com.example.HelloWorld.Validation.CheckOrder1;
import com.example.HelloWorld.Validation.CheckOrder2;
public class LoginForm {
@NotEmpty(groups={CheckOrder1.class},message="ユーザ名を入力してください。")
private String loginName;
@NotEmpty(groups={CheckOrder1.class},message="パスワードを入力してください。")
@Size(min=8,max=16,groups={CheckOrder2.class},message="パスワードは{min}文字以上{max}文字以下です。")
@Pattern(regexp="[a-zA-Z0-9]*",groups={CheckOrder2.class},message="パスワードは英数である必要があります。")
private String loginPassword;
public String getLoginName() {
return loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName;
}
public String getLoginPassword() {
return loginPassword;
}
public void setLoginPassword(String loginPassword) {
this.loginPassword = loginPassword;
}
}
package com.example.HelloWorld;
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 com.example.HelloWorld.Validation.CheckOrder;
@Controller
public class LoginController {
@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";
}
model.addAttribute("loginName", loginForm.getLoginName());
return "top";}
}
index.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"%>
<%@ taglib prefix="f" uri="http://www.springframework.org/tags/form"%>
<html>
<head>
<meta charset="utf-8">
<title>ログイン</title>
</head>
<body>
<f:form modelAttribute="loginForm" action="login" method="post">
<div>
ユーザ名:<input type="text" id="loginName" name="loginName">
<f:errors path="loginName" element="div" cssStyle="color:red" />
</div>
<div>
パスワード:<input type="text" id="loginPassword" name="loginPassword">
<f:errors path="loginPassword" element="div" cssStyle="color:red" />
</div>
<div>
<input type="submit" value="ログイン">
</div>
</f:form>
</body>
</html>
위 설정이 완료되면 서버를 시작합니다.
시도로 입력이 잘못되면 아래 화면이 표시됩니다.
다음 번
데이터베이스 액세스 에 대해 설명합니다.
Reference
이 문제에 관하여(Spring Framework 사용하기 (4)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Hakata2002/items/1b6f2753e817e4eecc53
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Spring Framework 사용하기 (4)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Hakata2002/items/1b6f2753e817e4eecc53텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)