3 回答

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個(gè)贊
創(chuàng)建一個(gè) Filter
這確實(shí) HttpServletRequest#getSession()
以前 FilterChain#doFilter()
..優(yōu)點(diǎn):無(wú)需更改JSF配置/代碼。缺點(diǎn):當(dāng)您希望避免不必要的會(huì)話創(chuàng)建時(shí),您自己也是如此。 打電話 ExternalContext#getSession()
帶著 true
在bean的(POST)構(gòu)造函數(shù)或 preRenderView
聽眾。優(yōu)勢(shì):事實(shí)上,沒什么。缺點(diǎn):太無(wú)趣了。 添加名稱為 com.sun.faces.writeStateAtFormEnd
和價(jià)值 false
到 web.xml
..優(yōu)點(diǎn):相對(duì)于#1和#2,將真正避免不必要的會(huì)話創(chuàng)建。 </h:form>
到達(dá)了。如果您的表單不是非常大,那么影響應(yīng)該是最小的。但是,如果您的 <h:form>
在視野中起步相對(duì)較晚。這可能與#4相結(jié)合。 添加名稱為 javax.faces.FACELETS_BUFFER_SIZE
以及Facelets響應(yīng)緩沖區(qū)大小的值,以字節(jié)為單位(例如, 65535
),以便整個(gè)HTML輸出或至少 <h:form>
(參見#3)適合響應(yīng)緩沖區(qū)。有利/不利,見第3條。 添加名稱為 javax.faces.STATE_SAVING_METHOD
和價(jià)值 client
到 web.xml
..優(yōu)點(diǎn):除非您有會(huì)話作用域bean,否則不會(huì)創(chuàng)建會(huì)話。它也立即解決了潛在的問(wèn)題。 ViewExpiredException
案子。缺點(diǎn):增加了網(wǎng)絡(luò)帶寬的使用。如果您使用的是部分狀態(tài)保存,那么影響應(yīng)該是最小的。
<h:form>
更新

TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個(gè)贊
<dependency> <groupId>org.glassfish</groupId> <artifactId>javax.faces</artifactId> <version>2.1.21</version></dependency>

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊
welcome-file
web.xml
java.lang.IllegalStateException: Cannot create a session after the response has been committed
welcome-file
web.xml
添加回答
舉報(bào)