MyFacesブリッジ

一応、作業完了。body内に記述されるJavaScriptもサポートするようにした。

TomahawkのサンドボックスにあるFishEye Navigationで試しているのだけど、これがいまいちうまく動かない。何が原因かね・・・。可能性として高いのは、MyFacesとTeedaの違いかな・・・。

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());
}
}
}
}

MyFacesブリッジ

MyFacesブリッジのコードをs2portlet-extensionに入れているけど、MyFaces からの反響というか、いつまだ立っても解決されずに向こうからリンクだけ張られている状況なので、再度、s2portlet-extensionからPALに戻した方がいいかな。見た感じでは、コード自体は、S2に依存するようなコードはまだ、入れてなかったと思うし。