TeedaのViewHandlerImpl#storeResponseCharacterEncoding

今、ポートレットのMyFacesブリッジを作成していて、たまたま ClassCastException に遭遇して気づいたのだが、チェックすべきなのは~Responseではなかろうか・・・。

protected void storeResponseCharacterEncoding(
ExternalContext externalContext) {
// Portlet: RenderRequest does not have getCharacterEncoding()
if (externalContext.getRequest() instanceof ServletRequest) {
ServletRequest req = (ServletRequest) externalContext.getRequest();
if (ServletExternalContextUtil.isHttpServletRequest(req)) {
HttpServletResponse httpRes = ServletExternalContextUtil
.getResponse(externalContext);
HttpSession session = (HttpSession) externalContext
.getSession(false);
if (session != null) {
session.setAttribute(ViewHandler.CHARACTER_ENCODING_KEY,
httpRes.getCharacterEncoding());
}
}
}
}

コメントを残す

メールアドレスが公開されることはありません。