[英]XHTML code modifications in JSF pages not reflected until server restart
我有一個帶有MyFaces實現的JSF 2.0 Web應用程序。 該應用程序在Apache Tomcat 7上運行。當我在運行或調試該應用程序時在xhtml
頁面上進行任何修改時,該頁面上都沒有任何更改。 我需要重新啟動tomcat才能測試甚至較小的xhtml修改。 這導致開發過程中時間的浪費。
我猜這是MyFaces的問題,因為當我將標准JSF實現從Mojarra切換到MyFaces時,問題就開始了。 如何解決這個問題?
MyFaces使用與Mojarra不同的Facelet緩存算法,並且更具攻擊性。 您需要將web.xml
的javax.faces.PROJECT_STAGE
上下文參數設置為Development
以將其調低。
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
更新 :從Mojarra 2.2.11開始,它的行為將相同。 因此,同樣在Mojarra上,您需要設置“ Development
階段以關閉Facelet緩存。 或者,將javax.faces.FACELETS_REFRESH_PERIOD
上下文參數顯式設置為0
。
<context-param>
<param-name>javax.faces.FACELETS_REFRESH_PERIOD</param-name>
<param-value>0</param-value>
</context-param>
值為0
表示“永不緩存”。 任何負值(例如-1
表示“無限緩存”。 任何正值(例如10
表示要緩存的秒數。
不要忘記重新啟用緩存進行生產。 項目階段更加有用,因為它也可以通過JNDI而不是通過web.xml
進行設置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.