JFinal: I18N 레이블
3575 단어 jFinal
Vity`s life.
Step 1: JFinal i18n 구성 열기
@Override
public void configConstant(Constants me) {
this.loadPropertyFile("constants.properties");
me.setDevMode(Boolean.valueOf(this.getProperty("app.devMode")));
me.setViewType(ViewType.JSP);
I18N.init("ui_message", null, null);
}
Step 2: LocaleInterceptor의 locale 차단 설정 증가
@Override
public void intercept(ActionInvocation ai) {
Controller c = ai.getController();
String tmp = c.getCookie(Const.I18N_LOCALE);
String i18n = c.getRequest().getLocale().toString();
if (!i18n.equals(tmp)) {
ai.getController().setCookie(Const.I18N_LOCALE, i18n, Const.DEFAULT_I18N_MAX_AGE_OF_COOKIE);
}
ai.invoke();
}
Step 3: I18Ntag 클래스 및 tld 파일 작성
public class I18NMessageTag extends TagSupport {
private static final long serialVersionUID = -8380055495002243207L;
private Logger log = Logger.getLogger(this.getClass());
private String key;
private String defaultValue;
/**
* (non-Javadoc)
*
* @see javax.servlet.jsp.tagext.TagSupport#doStartTag()
*/
@Override
public int doStartTag() throws JspException {
if (null == I18N.me()) {
log.error("I18N_TAG: ");
} else {
if (StringUtils.isBlank(key)) {
log.error("I18N_TAG:key ");
} else {
try {
if (StringUtils.isBlank(defaultValue)) {
pageContext.getOut().write(I18N.getText(key));
} else {
pageContext.getOut().write(I18N.getText(key, defaultValue));
}
} catch (IOException e) {
log.error(e.getMessage(), e);
}
}
}
return super.doStartTag();
}
/**
* @return the key
*/
public String getKey() {
return key;
}
/**
* @param key
* the key to set
*/
public void setKey(String key) {
this.key = key;
}
/**
* @return the defaultValue
*/
public String getDefaultValue() {
return defaultValue;
}
/**
* @param defaultValue
* the defaultValue to set
*/
public void setDefaultValue(String defaultValue) {
this.defaultValue = defaultValue;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.2</jspversion>
<shortname>eip</shortname>
<uri>/eip-taglib</uri>
<tag>
<name>i18n</name>
<tagclass>com.mvity.eip.core.tag.I18NMessageTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>key</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>defaultValue</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
PS:tld 문서는 WEB-INF 경로 아래에 배치할 수 있습니다.
Step 4: JSP 문서에 tag lib을 도입하여 사용
<%@ taglib prefix="eip" uri="/eip-taglib"%>
.....
<div class="top_b">
<eip:i18n key="bomp.login.title" />
</div>
끝내다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JFinal: I18N 레이블현재 JFinal로 작은 프로젝트를 만들었는데 I18N 문제가 발생했을 때 JFinal이 클래스 방법만 지원하는 것을 보고 JSP 라벨을 써서 JSP 페이지에서 호출했다. Vity`s life. Step 1: JFi...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.