setError()
sysLib.setError() 시스템 함수는 메시지와 여러 가능한 컨테이너 중 하나를 연관시킵니다.
sysLib.setError()에서 다음 컨테이너를 사용할 수 있습니다.
- JSF 핸들러의 필드
- VGUIRecord의 필드
- JSF 핸들러 자체
메시지가 배치되는 위치는 다음과 같이 다를 수 있습니다.
- JSF 핸들러가 함수를 호출하는 경우 메시지는 JSP에서 메시지 또는 메시지 태그의 위치에 배치됩니다.
- VGWebTransaction 프로그램이 함수를 호출하는 경우 메시지는 JSP에서 연관 필드의 위치에 배치됩니다.
관련 웹 페이지가 표시되면 메시지가 표시됩니다.
유효성 검증 함수가 sysLib.setError()를 호출하면 함수가 종료될 때 웹 페이지가 자동으로 다시 표시됩니다.
"구문"의 함수에 표시된 처음 3개의 시그니처 중 첫 번째는 JSF 핸들러 또는 VGWebTransaction 프로그램에서 사용 가능하지만 두 번째와 세 번째는 JSF 핸들러에서만 사용 가능합니다.
여러 메시지를 필드 또는 JSF 핸들러와 연관시킬 수 있습니다. JSF 핸들러가 forward 문을 실행하거나 VGWebTransaction 프로그램이 transfer 문 또는 show 문을 실행하는 경우 메시지가 손실됩니다.
JSF 핸들러의 onPostRenderFunction 특성에 지정된 함수에서 sysLib.setError()를 사용할 수 있지만 onPostRenderFunction 또는 onConstructionFunction 특성에 지정된 함수에서는 사용할 수 없습니다.
구문
sysLib.setError(
fieldInError anyPageVariable in,
msgKey STRING in
[, msgInsert STRING in])
sysLib.setError(
this enumerationThis in,
msgKey STRING in
{, msgInsert STRING in})
sysLib.setError(msgText STRING in)
- fieldInError
- JSF 핸들러에서 sysLib.setError()가
실행되는 경우 fieldInError는 웹 페이지의
컴포넌트에 바인드된 JSF 핸들러의 변수입니다.
sysLib.setError가 VGWebTransaction 프로그램에서 실행되는 경우에는 fieldInError가 프로그램의 inputUIRecord 또는 show 문이나 converse 문에서 지정된 VGUI 레코드의 필드입니다.
- this
- sysLib.setError() 호출을 실행하는 JSF 핸들러를 가리킵니다. 이 경우 메시지는 필드에 고유하지 않고 JSF 핸들러 자체와 연관됩니다. this에 대한 세부사항은 "this" 키워드의 내용을 참조하십시오.
- msgKey
- 입력은 STRING 유형과 지정 호환 가능한 표현식 또는 변수입니다(EGL의 지정 호환성 참조). msgKey는 런타임 시 사용되는 특성 파일 또는 메시지 자원 번들에 대한 키를 제공합니다. 키가 공백인 경우 메시지는 모든 메시지의 연결입니다.
- msgInsert
- 입력은 STRING 유형과 지정 호환 가능한 표현식 또는
변수입니다(EGL의 지정 호환성 참조). msgInsert는
출력 메시지에 삽입됩니다. 메시지 텍스트의 대체 기호는
다음 예제와 같이 중괄호로 묶인 정수입니다.
Invalid file name {0} - 삽입항목의 배열을 사용하는 sysLib.getMessage()와 달리 sysLib.setError()에서는 하나의 msgInsert 문자열만 허용됩니다.
- msgText
- 입력은 STRING 유형과 지정 호환 가능한 표현식 또는 변수입니다(EGL의 지정 호환성 참조). 이는 웹 페이지와 연관된 메시지의 텍스트입니다.
예제
다음 예제는 메시지 파일 errorMessages_en_US.properties의 항목을 표시합니다.
badname = The name you entered, {0}, is not valid.
다음 예제는 사용 중인 해당 메시지를 표시합니다.
userName STRING = getUserName(); // ask for input
rc = validateUserName(userName);
if (rc < 0)
SysLib.setError( SysLib.getMessage( "badname", userName ) );
end
호환성 고려사항
| 플랫폼 | 문제 |
|---|---|
| JavaScript 생성 | sysLib.setError() 함수는 지원되지 않습니다. |
| JSF 핸들러 | msgTable 유형 DataTable에서 메시지의 삽입이 지원됩니다. 첫 번째 삽입은 {0}입니다. |
| 웹 트랜잭션 | msgTable 유형 DataTable에서 메시지의 삽입이 지원됩니다. 첫 번째 삽입은 {1}입니다. |