使用innerHTML進行頁面部分替換對復雜交互很有效。
不過有個地方要注意
.innerHTML里帶的script不會起作用
為調試方便起見,可以先對innerHTML進行單獨調試,調通后將其中的javascript拷貝到主頁面。innerHTML中的script也不用刪除。
.javascript報錯可能只針對innerHTML里的行數。
看下面的配置,按文檔配的話應該是Session的listioner在Application listener的前面,但運行時拋錯說什么對象類型不對,現在如下把順序換了下,運行正常了
<filter>
<filter-name>container</filter-name>
<filter-class>com.opensymphony.webwork.lifecycle.RequestLifecycleFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>container</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<listener>
<listener-class>com.opensymphony.webwork.lifecycle.ApplicationLifecycleListener</listener-class>
</listener>
<listener>
<listener-class>com.opensymphony.webwork.lifecycle.SessionLifecycleListener</listener-class>
</listener>
<interceptor-ref name="component"/>
<interceptor-ref name="model-driven"/>
<interceptor-ref name="servlet-config"/>
<interceptor-ref name="prepare"/>
<interceptor-ref name="static-params"/>
<interceptor-ref name="params"/>
<interceptor-ref name="conversionError"/>
看上面一組定義,model-driven在params之前定義才能在映射值前準備好接受值的model對象
而component在model-driven之前定義才能對component進行model方式的驅動