【问题标题】:Hot republishing/deploying of static xhtml files issues静态 xhtml 文件的热重新发布/部署问题
【发布时间】:2011-11-25 21:41:11
【问题描述】:

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

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

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

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

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

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

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

每次更改 jsf 页面都需要重新启动 tomcat 服务器,这让我非常沮丧。

非常感谢您的支持。

【问题讨论】:

    标签: deployment tomcat5.5 jsf-1.2


    【解决方案1】:

    尝试将以下内容添加到您的 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/

    【讨论】:

    • 效果很好,谢谢 - 关于如何有条件地设置它而不是将其硬编码到 web.xml 中的任何想法? (即如果服务器是本地主机)???
    猜你喜欢
    • 1970-01-01
    • 2022-07-29
    • 1970-01-01
    • 2013-01-09
    • 2018-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多