[Seasar-user:1613] m:extendsするHTML間の更新タイミングについて

A M O I seasarml
2005年 3月 13日 (日) 23:27:33 JST


いつもお世話になっております。あもいです。
S2JSFの方、試させていただいています。次のプロダクトに採用決定です(笑

そんな中、少し不可解な現象がありましたので、ご報告させてください。
いまいちまだJSF自体を理解しきっていないので、
おかしなことを言っているかもしれませんが、ご容赦いただければ幸いです。

さてs2jsf-exampleでは、
例えばindex.htmlは/WEB-INF/layout/layout.htmlから
m:extendsするようになっていますが、
一旦index.htmlを表示させると、
layout.htmlをいくら編集しても反映されません。

この場合、index.htmlのタイムスタンプを更新してあげると、
layout.htmlの変更内容も更新されます。

また、index.htmlのタイムスタンプが更新されない限り、
Tomcatを再起動しても
やはりlayout.htmlの変更が反映されないようです。
この場合には、
Tomcat停止後workにあるSESSIONS.serを消してあげれば良いようです。

さて、ここからが問題なのですが、
layout.htmlからspan等の要素を削除してしまった場合、
反映されないばかりでなく、例外を吐いて止まってしまいます。
JSFの関係する要素だけでなく、hr要素を削除した場合でも同じでした。

javax.faces.FacesException: cannot add component '_id122'
	javax.faces.webapp.UIComponentTag.findComponent(UIComponentTag.java:428)
	javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:246)
	org.seasar.jsf.processor.TextProcessor.process(TextProcessor.java:76)
	org.seasar.jsf.processor.TagProcessorImpl.processChildren(TagProcessorImpl.java:254)
	org.seasar.jsf.processor.InsertProcessor.process(InsertProcessor.java:63)
	(中略)
	org.seasar.jsf.processor.TagProcessorImpl.process(TagProcessorImpl.java:181)
	org.seasar.jsf.processor.ViewProcessor.process(ViewProcessor.java:145)
	org.seasar.jsf.processor.ViewProcessor.process(ViewProcessor.java:143)
	org.seasar.jsf.runtime.ViewRendererImpl.renderView(ViewRendererImpl.java:79)
	org.seasar.jsf.application.S2ViewHandler.renderView(S2ViewHandler.java:98)
	org.seasar.jsf.lifecycle.LifecycleImpl.render(LifecycleImpl.java:158)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:110)
	org.apache.myfaces.component.html.util.ExtensionsFilter.doFilter(ExtensionsFilter.java:119)
	org.seasar.extension.filter.EncodingFilter.doFilter(EncodingFilter.java:47)
	org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:45)

J2SE1.4.2 Tomcat/5.0.28の環境で、試行したS2JSFはRC4です。
ちょっと追ってみたんですが、
ViewTemplateFactoryImplの段階では、
index.htmlのタイムスタンプに関わらず
変更されたlayout.htmlを読み込んでいるようです。

ご確認ください。
よろしくお願いいたします。
--
http://d.hatena.ne.jp/amoiioma/



Seasar-user メーリングリストの案内