회원정보 등록
회원가입 form에서 요청을 할때 컨트롤러의 매개변수로 VO를 넣어주면 자동으로 동명의 parameter를 요청한다.
하지만 우리가 VO에 선언한 전화번호 tel은 하나고, form에서 넘겨주는 전화번호는 tel1, tel2, tel3이다.
그래서 우린 VO에 이들을 선언해주고 tel로 합쳐줘야한다.
package com.poby.myapp.vo;
public class MemberVO {
private String username;
private String password;
private String name;
private String tel;
private String tel1;
private String tel2;
private String tel3;
private String email;
private String zipcode;
private String addr;
private String detailaddr;
private String regdate;
@Override
public String toString() {
return "MemberVO [username=" + username + ", password=" + password + ", name=" + name + ", tel=" + tel
+ ", email=" + email + ", zipcode=" + zipcode + ", addr=" + addr + ", detailaddr=" + detailaddr
+ ", regdate=" + regdate + "]";
}
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;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTel() {
tel = tel1+"-"+tel2+"-"+tel3;
return tel;
}
public void setTel(String tel) {
this.tel = tel;
String t[] = tel.split("-");
tel1 = t[0];
tel2 = t[1];
tel3 = t[2];
}
public String getTel1() {
return tel1;
}
public void setTel1(String tel1) {
this.tel1 = tel1;
}
public String getTel2() {
return tel2;
}
public void setTel2(String tel2) {
this.tel2 = tel2;
}
public String getTel3() {
return tel3;
}
public void setTel3(String tel3) {
this.tel3 = tel3;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getZipcode() {
return zipcode;
}
public void setZipcode(String zipcode) {
this.zipcode = zipcode;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
public String getDetailaddr() {
return detailaddr;
}
public void setDetailaddr(String detailaddr) {
this.detailaddr = detailaddr;
}
public String getRegdate() {
return regdate;
}
public void setRegdate(String regdate) {
this.regdate = regdate;
}
}
tel1~3 모두 변수로 선언해주고, setTel()과 getTel()에서 tel과 tel1~3의 관계를 정의해줬다.
그 다음 컨트롤러에 매개변수로 MemberVO를 넣어서 만들자.
// 회원 등록
// @RequestMapping(value="/member/signupOk", method=RequestMethod.POST)
@PostMapping("/member/signupOk")
public ModelAndView signupOk(MemberVO vo) {
ModelAndView mad = new ModelAndView();
return mad;
}
그리고 이제 DAO, Service, ServiceImpl에 메소드를 생성하고 memberMapper.xml로 가서 쿼리문을 작성하자.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.poby.myapp.dao.MemberDAO">
<select id="idCheck" resultType="int">
SELECT count(username) cnt FROM member_tbl WHERE username=#{param1}
</select>
<select id="searchZipcode" resultType="com.poby.myapp.vo.ZipcodeVO">
SELECT zipcode, city, street, bldg1, bldg2, bldgname, dong, num1, num2
FROM zipcode_tbl WHERE street LIKE '%${param1}%'
</select>
<insert id="signupOk">
INSERT INTO member_tbl(username, password, name, tel, email, zipcode, addr, detailaddr)
VALUES (#{username}, #{password}, #{name}, #{tel}, #{email}, #{zipcode}, #{addr}, #{detailaddr})
</insert>
</mapper>
매개변수(parameter)로 MemberVO가 넘어왔기 때문에, mybatis에서 자동으로 VO안의 변수들을 parameter로 인식한다.
컨트롤러 매핑을 홈페이지로 넘겨주도록 하자.
// 회원 등록
// @RequestMapping(value="/member/signupOk", method=RequestMethod.POST)
@PostMapping("/member/signupOk")
public ModelAndView signupOk(MemberVO vo) {
ModelAndView mav = new ModelAndView();
System.out.println(vo.toString());
int result = service.signupOk(vo);
if(result>0) {
mav.setViewName("redirect:/"); // 뷰페이지 이름을 jsp파일명 대신 다른 컨트롤러의 매핑 주소로 보낸다
}else {
mav.setViewName("member/signupResult");
}
return mav;
}
실패했을때 다시 회원가입 페이지로 뒤로가기해줄 signupResult.jsp를 만들어주고 실행해보자.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<script>
alert("회원가입 실패.");
history.back();
</script>
'Spring' 카테고리의 다른 글
12.12.(월) Spring Framework(14): 회원관리 기능(8) (0) | 2022.12.15 |
---|---|
12.12.(월) Spring Framework(13): 회원관리 기능(7) (2) | 2022.12.15 |
12.12.(월) Spring Framework(11): 회원관리 기능(5) (0) | 2022.12.14 |
12.12.(월) Spring Framework(10): 회원관리 기능(4) (0) | 2022.12.14 |
12.12.(월) Spring Framework(9): 회원관리 기능(3) (0) | 2022.12.14 |