Spring/스프링 프로젝트

스프링 a태그에서 confirm 이용하기, 쿼리스트링으로 값 전달

어굴애 2021. 7. 6. 19:26

<a href="요청url" onclick="return confirm('정말 취소하시겠습니까?')"><button>취소</button>

 

form과 input

쿼리스트링과 a태그 어찌보면 당연한데,

인풋태그를 사용하지않고 쿼리스트링으로 값을 컨트롤러까지 전달하려할 때 form을 결합해서 사용할 수 없다.

 

다음과 같이 시도했다가 실패

 

<form action="confirm?id=${vac.holi_rid}&emp_id=${vac.emp_id}">
   <button class="button-two" type="submit" onclick="return confirm('해당 요청을 승인하시겠습니까?');">승인</button>
</form>

form은 넘어가나 데이터가 전달되지 않는다.

 

수정된 모습

<a href="reject?id=${vac.holi_rid}" onclick="return confirm('해당 요청을 거절하시겠습니까?');">
  <button class="button-two" >거절 </button>
</a>

 

 

스프링 컨트롤러에서 쿼리스트링, 혹은 인풋 값을 받는 방법은 세가지가 있는듯하다.

 

1. 파라미터로 어노테이션, 자료형, 이름 그대로 입력하기

   

 @GetMapping("cancel")
public String cancel(@RequestParam String id){

}

이 방법이 좋은 이유는, String으로 입력된 값을 (숫자의 형태일 경우) int로 자동 변환이 가능하다.

(@ReqeustParam int id)가 가능

 

2. Request 객체 이용하기

 

  @GetMapping("cancel")
public String cancel(HttpServletRequest request){
 request.getParameter("id")
}

jsp에서 했듯 익숙한 방식으로 사용한다.

 

3. 그냥 바로 뺄 수 있다 (스프링)

 

 @GetMapping("cancel")
public String cancel(String id){
 
}

기본적으로 request.getParameter()를 생략하지 않고 name값을 일치시켜 파라미터에 준다면 바로 사용이 가능하다. 스프링의 특징이라고 한다.