memberWirte
public class MemberVo {private String id;}
<form action="/member/memberView" method="post" name="memFrm" >
<input type="text" name="id" id="id">
<input type="text" name="pw" id="pw">
<input type="text" name="name" id="name">
<input type="text" name="phone" id="phone">
<th>성별</th>
<td class="type1">
<input type="radio" name="gender" id="male" value="male">
<label for="male">남자</label>
<input type="radio" name="gender" id="female" value="female">
<label for="female">여자</label>
</td>
<th>취미</th>
<td class="type1">
<input type="checkbox" name="hobbys" id="swim" value="swim">
<label for="swim">수영</label>
<input type="checkbox" name="hobbys" id="reading" value="reading">
<label for="reading">독서</label>
<input type="checkbox" name="hobbys" id="cook" value="cook">
<label for="cook">요리</label>
<input type="checkbox" name="hobbys" id="jogging" value="jogging">
<label for="jogging">조깅</label>
<input type="checkbox" name="hobbys" id="golf" value="golf">
<label for="golf">골프</label>
</td>
<sciprt>
function memberBtn(){
if($("#id").val().length<2){
alert("아이디를 두글자 이상 입력하셔야 합니다.")
$("#id").focus();
return
}
if(confirm("회원가입을 하시겠습니까?")){
return memFrm.submit();
}
}//
<script>
//id를 체크
function checkIdBtn(){
alert("아이디를 체크합니다");
var formData={"id":$("#id").val()}; // member객체의 인스턴스 변수와 이름을 맞춰줘야한다.
$.ajax({
url:"checkId",
type:"post",
data:JSON.stringify(formData),
//data:formData,
dataType:"json", //받을때 json이라는 json format으로 받겟다
contentType:"application/json; charset=utf-8;", // 보낼때 해당되는 내용 mine 타입
success:function(data){
alert("성공");
console.log("name:"+data[0].name); //객체로 받았지만 json으로 잘 변해서 받는다.
console.log("age:"+data[0].age);
},
error:function(){
alert("실패");
}
});
}
</script>
MemberVo
package com.java.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@AllArgsConstructor
@NoArgsConstructor
@Data
//@Data는 위에서 설명드린 @Getter, @Setter, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode을 한꺼번에 설정해주는 매우 유용한 어노테이션
public class MemberVo {
private String id;
private String pw;
private String name;
private String phone;
private String gender;
private String[] hobbys;
}
Mcontroller - request 형태로 받기
package com.java.controller;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.java.vo.MemberVo;
@Controller
@RequestMapping("/member")
public class Mcontroller {
private String id, pw, name, phone, gender, hobby="";
private String[] hobbys;
@PostMapping("/memberView") public String memberView(HttpServletRequest
request, Model model) {
hobby="";
id = request.getParameter("id");
pw = request.getParameter("pw");
name =request.getParameter("name");
phone = request.getParameter("phone");
gender = request.getParameter("gender");
hobbys =request.getParameterValues("hobbys");
for (int i = 0; i < hobbys.length; i++)
{ if (i == 0) hobby += hobbys[i]; else hobby += "," + hobbys[i]; }
model.addAttribute("id", id); model.addAttribute("pw", pw);
model.addAttribute("name", name); model.addAttribute("phone", phone);
model.addAttribute("gender", gender); model.addAttribute("hobby", hobby);
return "member/memberView";
}
memberView
모델을 따로 붙여주지 않아도 el tag에서 잘 알아듣는다.
<h2>회원정보</h2>
<table>
<colgroup>
<col width="30%">
<col width="70%">
</colgroup>
<tr>
<th>아이디</th>
<td>${id}</td>
</tr>
<tr>
<th>패스워드</th>
<td>${pw}</td>
</tr>
<tr>
<th>이름</th>
<td>${name}</td>
</tr>
<tr>
<th>전화번호</th>
<td>${phone }</td>
</tr>
<tr>
<th>성별</th>
<td>${gender}</td>
</tr>
<tr>
<th>취미</th>
<td>
${hobby}
</td>
</tr>
단점 - array값은 무조건 입력해주어야함
만약 회원가입을 할 때 array값을(여기서 hobby값을) 입력하지 않으면
hobbys =request.getParameterValues("hobbys");
for (int i = 0; i < hobbys.length; i++)
{ if (i == 0) hobby += hobbys[i]; else hobby += "," + hobbys[i]; }
Mcontroller에서 아래와 같은 에러가 뜬다.