我正在尝试在 Play 中的 Scala 模板中格式化日期。到目前为止,我已经写了这个:
<p>@DateFormat.getInstance().format(deadline)</p>
截止日期是我输出到网页的日期。但是,这使用了 JVM 的语言环境,而不是用户选择的语言环境。
我的应用程序目前支持两种语言环境,挪威语 (no) 和英语 (en)。这适用于消息,但不适用于Date
s。所以我尝试添加一个GlobalSettings
来拦截每个请求,如下所示,但显然它从未被调用过:
import java.lang.reflect.Method;
import java.util.Locale;
import org.springframework.context.i18n.LocaleContext;
import org.springframework.context.i18n.LocaleContextHolder;
import play.GlobalSettings;
import play.i18n.Lang;
import play.mvc.Action;
import play.mvc.Http.Request;
public class Global extends GlobalSettings {
@SuppressWarnings("rawtypes")
@Override
public Action onRequest(final Request request, final Method actionMethod) {
LocaleContextHolder.setLocaleContext(new LocaleContext() {
public Locale getLocale() {
Lang preferred = Lang.preferred(request.acceptLanguages());
return preferred.toLocale();
}
});
return super.onRequest(request, actionMethod);
}
}
有人有解决这个问题的方法吗?这是 Play 中的已知错误吗?我使用的是 2.0.4 版。
谢谢!