2013-05-01 37 views
3

刷新對話期間顯示的頁面時出現錯誤。如何避免這個錯誤?WELD-000321刷新頁面時未發現要恢復id 3的對話

的情況:

我有2個JSF頁面,和的index.xhtml age.xhtml。

index.xhtml包含一個表單,用戶輸入出生日期(支持bean「bean」的屬性)。當用戶提交表單時,age.xhtml根據出生日期顯示年齡。

提交表單與重定向:

<h:commandButton value="Submit" action="#{bean.computeAge()}" /> 

computeAge方法:

conversation.begin(); 
return "age?faces-redirect=true"; 

同樣支持bean 「豆」 用於由兩個頁面。這個支持bean有一個對話範圍。

頁age.xhtml:

Your age: #{bean.age} years 

getAge方法:

if (!conversation.isTransient()) { 
    conversation.end(); 
} 
return ejb.computeAge(birthdate); 

一切正常,除非我刷新age.xhtml。然後我收到此錯誤信息: WELD-000321未找到要還原ID談話3

前和後刷新瀏覽器中顯示的網址: http://localhost:8080/tpjsf1/faces/age.xhtml?cid=3

的問題來自CID = 3的結束。當用戶刷新age.xhtml時可以避免錯誤頁面嗎?

回答

0

當您在getAge方法中結束對話時發生錯誤。在你的情況下,當你回到索引頁面時,對話應該結束。爲了處理不存在的會話異常,請將以下標記添加到Web xml中。這會將異常重定向到所提到的頁面。

<error-page> 
    <exception-type>org.jboss.weld.context.NonexistentConversationException</exception-type> 
    <location>/my-foo-bar-exception-page.xhtml</location> 
</error-page>