簡體   English   中英

直到服務器重新啟動,JSF頁面中的XHTML代碼修改才會反映出來

[英]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.xmljavax.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM