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값을 일치시켜 파라미터에 준다면 바로 사용이 가능하다. 스프링의 특징이라고 한다.