controller - request 형태로 받기

easyliving·2023년 2월 21일
0

FRONT_END (JAVA_SCRIPT)

목록 보기
51/55

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에서 아래와 같은 에러가 뜬다.

profile
가끔져요

0개의 댓글