2

我注意到在以下环境中操作 JSF 页面的“热部署”存在很多问题:

  1. Eclipse Indigo(最新版本)
  2. 雄猫 5.5
  3. JSF 1.2
  4. Facelets 视图处理程序

我注意到,如果我修改一个已经呈现的 xhtml 页面(例如元素的 CSS 样式),然后重新发布(通过 Eclipse 或手动复制 Tomcat 中的 xhtml 文件)这个页面(保持 servlet 容器向上),它没有向我显示当前的更改。

我还徒劳地在我的 Web 应用程序上设置了以下配置:

<Context 
    docBase="mywebapp" 
    path="/mywebapp" 
    reloadable="true" 
    cachingAllowed="false">

我的最后一点是典型 JSF 页面处理的恢复视图阶段不检查客户端视图(当然是 xhtml 页面)是否从上次加载到 FacesContext 时发生了变化。

如果是这样,我如何强制为每个提交的请求构建一个新的 UIViewRoot 对象?

对于 jsf 页面中的每次更改,我都在重新启动 tomcat 服务器时感到非常沮丧。

非常感谢您的支持。

4

1 回答 1

9

尝试将以下内容添加到您的 web.xml 配置文件中:

  <context-param>
      <param-name>facelets.DEVELOPMENT</param-name>
      <param-value>true</param-value>
  </context-param>
  <context-param>
      <param-name>facelets.REFRESH_PERIOD</param-name>
      <param-value>1</param-value>
  </context-param>

它告诉 JSF 重新渲染 Facelet。看看我如何输入“1”。在 Prod 环境中,您总是会输入“-1”来禁用此功能,因为在 Prod 环境中不应更改 facelets。

您还需要确保您可以热部署类和 JSP 资源。你可以在这里找到如何做到这一点:

http://ducquoc.wordpress.com/2010/11/06/eclipse-wtp-tomcat-hot-deploy/

于 2011-10-28T01:01:19.773 回答