저는 아래와 같은 properties 파일을 만들고,
1
|
UNKNOWNERROR=알 수 없는 오류입니다.(ERRORCODE)
|
아래와 같은 코드로 ERRORCODE를 대체해 왔습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
package com.idatabank.sso.exception;
import java.util.ResourceBundle;
public class SSOException extends Exception {
public SSOException() {
super();
}
public SSOException(String errorType) {
super(errorType);
userMessage = rb.getString(errorType);
if ( userMessage == null ) {
userMessage = rb.getString("UNKNOWNERROR").replaceAll("ERRORCODE", errorType);
}
}
/**
* 사용자 에러 메시지를 세팅한다.
* @param userMessage
*/
public void setUserMessage(String userMessage) {
this.userMessage = userMessage;
}
/**
* 사용자 에러 메시지를 반환한다.
* @return
*/
public String getUserMessage() {
return userMessage;
}
private String userMessage = null;
private static final ResourceBundle rb = ResourceBundle.getBundle("com.idatabank.sso.exception.Messages");
}
|
그런데, 오늘 문자열 치환의 새로운 방법을 찾았습니다.
1
|
http.method_not_implemented=Method {0} is not defined in RFC 2068 and is not supported by the Servlet API
|
1
2
3
4
|
String errMsg = rb.getString("http.method_not_implemented");
Object[] errArgs = new Object[1];
errArgs[0] = method;
errMsg = java.text.MessageFormat.format(errMsg, errArgs);
|
이 방법이 좀더 우아해 보입니다.