Anyframe Web에서는 Struts Html Tag를 확장한 Anyframe Html Tag를 제공한다. Anyframe
Html Tag Library는 errors, messages 두가지 Tag를 포함하고 있으나, errors Tag는
Struts 1.2 이후 deprecated Tag이므로 본 매뉴얼에서는 다루지 않을 것이다.
Page Navigator Tag
Anyframe Web에서는 UI 구성시 Page Navigation 처리에 대한 편의성을 제공하기 위하여, Page Navigator
Tag를 제공한다. 해당 UI 관련 JSP에서 이 Tag를 사용하기 위해서는 JSP의 상단에 다음과 같이 anyframe-pagenavigator.tld 파일을
taglib으로 지정해 주도록 한다.
<%@ taglib uri='/WEB-INF/anyframe-page.tld' prefix='anyframe' %>
위에서와 같이 Page Navigator Tag의 prefix를 'anyframe'으로 정의하였을 경우 아래와 같이 해당 Tag를
사용할 수 있다.
<anyframe:pagenavigator linkUrl="javascript:fncGetUserList(2);"
pages="<%=resultPage%>" formName="listForm"
firstImg="sample/images/ct_btn_pre.gif"
prevImg="sample/images/ct_btn_pre01.gif"
lastImg="sample/images/ct_btn_next.gif"
nextImg="sample/images/ct_btn_next01.gif" />
이 때 pages라는 속성의 값은 anyframe.common.Page 타입의 객체로 할당해 주어야 함에 유의하도록 한다.
Messages Tag
Messages Tag는 ActionMessage 객체 내의 대체 문자열에도 Message Resource Bundle을 이용하여
국제화를 지원할 수 있도록 Struts Html의 Messages Tag를 확장하였다.
다음은 Anyframe Messages Tag의 구현체인 anyframe.web.struts.util.DefaultMessagesTag의
일부이다.
ActionMessage report = (ActionMessage) this.iterator.next();
Object[] obj = report.getValues();
if (obj != null) {
for (int i = 0; i < obj.length; i++) {
String argKey = obj[i].toString();
String argValue = TagUtils.getInstance().message(pageContext,
bundle, locale, argKey, null);
obj[i] = argValue == null ? argKey : argValue;
}
}
String msg = TagUtils.getInstance().message(pageContext, bundle,
locale, report.getKey(), obj);
위의 소스코드에서와 같이 대체 문자열에 대하여 Message Resource Bundle로부터 해당 key에
대한 값을 찾아 ActionMessage에 설정하게 된다. 이때 해당 Message Resource Bundle에
key가 정의되어 있지 않은 경우 해당 key를 그대로 대체 문자열로써 설정하게 구성되어 있다.
또한 ActionMessage에 suffix를 추가할 수 있다. 이 경우 UI에 해당 메시지 표현시 suffix가 추가되어
보여진다.
if (suffix != null && suffix.length() > 0) {
String suffixMessage = TagUtils.getInstance().message(
pageContext, bundle, locale, suffix);
if (suffixMessage != null) {
TagUtils.getInstance().write(pageContext, suffixMessage);
}
}
Error Page 구성
다음은 Anyframe Messages Tag를 사용하여 해당 UI에 에러 메시지를 출력하는
commonError.jsp
의 일부분이다.
<%@ page contentType="text/html; charset=utf-8" %>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="/WEB-INF/anyframe-html.tld" prefix="anyframehtml" %>
<table width="95%" align="left">
<tr>
<td class="common_error">
<anyframehtml:messages id="msg"
bundle='<%=request.getParameter("bundle")%>'
header="errors.header" suffix="errors.suffix">
<bean:write name="msg"/>
</anyframehtml:messages>
</td>
</tr>
</table>