Wanna be Brilliant Full-Stack Developer

SpringBoot 공통응답 Script 만들기! 본문

Back-End/Spring Boot

SpringBoot 공통응답 Script 만들기!

Flashpacker 2022. 2. 10. 15:31

Input 타입에서 속성으로 길이제한을 하기 위해선 maxlength로 할수있다. 

또한 지금은 회원가입에서 정보를 입력하여 오류가 나오면 오류 메시지가 나오는 새창으로 이동하지만 

사용자에게 불편하기 때문에 

새로운 util 패키지를 만들고 Script라는 클래스를 만든다.

package com.cos.photogramstart.util;

public class Script {
	
	public static  String back(String msg) {
		StringBuffer sb = new StringBuffer();
		sb.append("<script>");
		sb.append("alert('"+msg+"');");  //경고창을 띄운다
		sb.append("history.back();"); // 뒤로 돌아가는것
		sb.append("</script>");
		return sb.toString();
	}

}

또한 핸들러도 수정을 하게된다. 

package com.cos.photogramstart.handler;

import java.util.Map;

import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestController;

import com.cos.photogramstart.handler.ex.CustomValidationException;
import com.cos.photogramstart.util.Script;
import com.cos.photogramstart.web.dto.CMRespDto;

@RestController
@ControllerAdvice
public class ControllerExceptionHandler {
	
	@ExceptionHandler(CustomValidationException.class) // RuntimeExcpetion -> CustomValidaionException 으로 변경 
	public String validationException(CustomValidationException e) {
		return Script.back(e.getErrorMap().toString());
	}

}

// CMRespDto, Script 비교
// 1. 클라이언트에게 응답할 때는 Script 좋음.
// 2. Ajax통신 - CMRespDto
// 3. Android 통신 -CMRespDto 

2 번과 Ajax통신은 개발자가 자바스크립트 코드로 서버쪽으로 던져서 응답받는것

3번은 안드로이드 통신은 응답은 개발자가 안드로이드 앱에서 받는것이다

1번은 응답을 브라우저 클라이언트가 받는다.