Controller에서 정상적인 경로로 해당 uri 접속한 게 아닌 경우
return CommUtil.doComplete(model, "오류", "정상적인 경로로 접속 해 주세요", "history.back();");
해당 코드로 처리한다.
/**
* 처리 완료 후 안내문구 및 스크립트 설정,
* @param model ModelMap
* @param title : 페이지 타이틀 제목 (보통 오류또는 안내)
* @param msg : alert() 경고 문으로 보여줄 안내문, "" 값이면 경고창 없음
* @param script : javascript 처리문장 (보통 location.href='~~~~')
* @return /ncms/comm/message/message
*/
public static String doComplete(ModelMap model, String title, String msg, String script) {
HashMap<String, String> message = new HashMap<String, String>();
message.put("title",title);
message.put("msg",msg);
message.put("script",script);
message.put("type","alert");
model.addAttribute("message", message);
return "/ncms/comm/message/message";
}
/**
* 처리후 confirm 함수를 이용해 사용자 선택을 받아서 처리 함
* @param model
* @param title 제목
* @param msg confirm 질문 내용
* @param okUrl [확인]버튼 클릭시 스크립트
* @param cancelUrl [아니오]버튼 클릭시 스크립트
* @return
*/
public static String doCompleteConfirm(ModelMap model, String title, String msg, String okUrl, String cancelUrl) {
HashMap<String, String> message = new HashMap<String, String>();
message.put("title",title);
message.put("msg",msg);
message.put("script","");
message.put("okUrl",okUrl);
message.put("cancelUrl",cancelUrl);
message.put("type","confirm");
model.addAttribute("message", message);
return "/ncms/comm/message/message";
}
return jsp는 아래와 같다.
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<style>body{display:none;visibility:hidden;}</style>
<script>
<c:if test="${not empty message.title}">
document.title = "${message.title}";
</c:if>
<c:choose>
<c:when test="${message.type eq 'alert'}">
<c:if test="${message.msg != ''}">
alert("<c:out value="${message.msg}"/>");
</c:if>
<c:out value="${message.script}" escapeXml="false" />
</c:when>
<c:when test="${message.type eq 'confirm'}">
<c:if test="${message.msg != ''}">
if (confirm("<c:out value="${message.msg}"/>")) {
<c:out value="${message.okUrl}" escapeXml="false" />
} else {
<c:out value="${message.cancelUrl}" escapeXml="false" />
}
</c:if>
<c:out value="${message.script}" escapeXml="false" />
</c:when>
<c:otherwise>
<c:if test="${message.msg != ''}">
alert("<c:out value="${message.msg}"/>");
</c:if>
<c:out value="${message.script}" escapeXml="false" />
</c:otherwise>
</c:choose>
</script>