Spring boot (3): @ RequestMapping 의 Form 폼 매개 변수 전달 및 POJO 바 인 딩 인 스 턴 스 설명
12367 단어 Springboot
오늘 우 리 는 전단 form 폼 매개 변 수 를 @ RequestMapping 을 통 해 백 엔 드 의 자바 빈 (POJO) 과 어떻게 연결 하 는 지 이야기 할 것 입 니 다.
본 고 는 앞의 두 블 로그 인 을 바탕 으로 코드 는 SpringBoot 1.5.8 maven 웹 프로젝트 를 신속하게 구축 합 니 다.
먼저 간단 한 로그 인 인터페이스 폼 코드 index. html 를 작성 합 니 다. 인터페이스 가 매우 간단 합 니 다. 두 개의 입력 상자, 하나의 로그 인 버튼:
<html lang="zh-cn">
<head>
<meta charset="utf-8"/>
<title>Logintitle>
<link rel="stylesheet" href="/SpringBootBase/css/bootstrap.min.css"/>
<link rel="stylesheet" href="/SpringBootBase/css/customer/login.css"/>
head>
<body>
<div class="container">
<form class="form-signin" action="./login" method="post">
<h2 class="form-signin-heading"> h2>
<input type="text" class="form-control" placeholder=" " name="username"/>
<input type="password" class="form-control" placeholder=" " name="password"/>
<button class="btn btn-lg btn-primary btn-block" type="submit"> button>
form>
div>
body>
html>
POJO 보기 대상 UserVO 를 하나 더 쓰 겠 습 니 다.
public class UserVO {
public String username;
public String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "username: " + username + ", password: " + password;
}
}
controller 하나 더 써 주세요.
@Controller
public class LoginController {
@RequestMapping(value = "login", method = RequestMethod.POST)
public String login(UserVO user){
System.out.println("POJO: " + user.getClass().getName() +
", hash code: " + user.hashCode() + ", " + user.toString());
return "redirect:/";
}
}
Tomcat 서비스 시작, 주소 표시 줄 입력https://localhost:8443/SpringBootBase/ 다음 화면 보이 기,
계 정 admin 및 비밀번호 123456 을 입력 하 십시오. 콘 솔 에서 다음 로그 출력 을 볼 수 있 습 니 다.
POJO: tech.onroad.springbootbase.bean.UserVO, hash code: 1036686981, username: admin, password: 123456
전단 폼 에서 전 달 된 두 개의 인자 username 을 설명 합 니 다. password 는 UserVO 라 는 POJO 에 자동 으로 연 결 됩 니 다.사실 이것 은 Spring @ RequestMapping 이라는 주해 의 공로 입 니 다. 이것 은 형 삼 의 POJO 를 자동 으로 스 캔 하고 대상 을 만 듭 니 다. 전단 에 들 어 오 는 매개 변수 가 POJO 구성원 변수 이름과 같 으 면 POJO 의 setter 방법 으로 이 대상 에 게 전 달 됩 니 다.
Q & A
1. 일치 하 는 매개 변수 에서 대상 구성원 변수의 대소 문 자 를 무시 합 니까?
UserVO 의 구성원 변 수 를 username 으로 변경 합 니 다. 즉,
public class UserVO {
private String userName;
private String password;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "userName: " + userName + ", password: " + password;
}
}
컨트롤 러 코드 가 변 하지 않 음
다시 실행 합 니 다. 같은 계 정 admin 과 비밀 번 호 를 입력 하 십시오. 123456 에서 얻 은 로 그 는 다음 과 같 습 니 다.
POJO: tech.onroad.springbootbase.bean.UserVO, hash code: 1762238496, userName: null, password: 123456
userName 의 값 이 비어 있 습 니 다. 일치 하 는 과정 에서 대소 문 자 를 구분 하 는 것 이 분명 합 니 다.
2. 만약 에 형 삼 이 두 개의 POJO 대상 이 있다 면 그들 은 마침 username 의 구성원 변 수 를 가지 고 있다 면 어떻게 일치 할 까요?
마찬가지 로 우 리 는 코드 를 통 해 검증 합 니 다.
우선, 우 리 는 StudentVO POJO 를 추가 합 니 다. 이 대상 은 username 이 라 고도 부 르 는 구성원 변수 가 있 습 니 다.
public class StudentVO {
private String username;
private int age;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "username: " + username + ", age: " + age;
}
}
controller login 방법 변경
@Controller
public class LoginController {
@RequestMapping(value = "login", method = RequestMethod.POST)
public String login(UserVO user, StudentVO student){
System.out.println("POJO: " + user.getClass().getName() +
", hash code: " + user.hashCode() + ", " + user.toString());
System.out.println("POJO: " + student.getClass().getName() +
", hash code: " + student.hashCode() + ", " + student.toString());
return "redirect:/";
}
}
실행, 같은 계 정 admin 및 비밀 번 호 를 입력 12345, 아래 log 를 얻 을 수 있 습 니 다.
POJO: tech.onroad.springbootbase.bean.UserVO, hash code: 1260683413, userame: admin, password: 123456 POJO: tech.onroad.springbootbase.bean.StudentVO, hash code: 816397424, username: admin, age: 0
형 삼 의 구성원 변수 이름과 전단 에 전 달 된 매개 변수 이름 이 일치 하면 setter 방법 을 통 해 자바 빈 에 대응 하 는 구성원 변수 에 매개 변 수 를 전달 한 다 는 뜻 이다.
전체 코드 는 나의 github 에서 다운로드 할 수 있 습 니 다:https://github.com/onroadtech/SpringbootBase/ branch: master commit-id: 94dd507dfc9c71e62e1b0f3b19f54843c583d84e
본 박문 은 이미 나의 개인 블 로그 사이트 에 동시 발표 되 었 으 니, 전재 하여 출처 를 밝 히 는 것 을 환영 합 니 다.개인 블 로그: www. onroad. tech 지정 메 일: [email protected]
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[MeU] Hashtag 기능 개발➡️ 기존 Tag 테이블에 존재하지 않는 해시태그라면 Tag , tagPostMapping 테이블에 모두 추가 ➡️ 기존에 존재하는 해시태그라면, tagPostMapping 테이블에만 추가 이후에 개발할 태그 기반 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.