2012-01-05 43 views
1

我在我的應用程序中遇到了這個問題。奇怪的部分是這個錯誤彈出窗口在某些時候我開始我的應用程序,但有時它不。此錯誤的原因是什麼'javax.faces.FacesException:必須設置var屬性'以及如何解決此問題?

這塊堆棧跟蹤的..

javax.faces.FacesException: var attribute must be set 
    at org.jboss.seam.ui.component.UISelectItems$ContextualSelectItem.<init>(UISelectItems.java:58) 
    at org.jboss.seam.ui.component.UISelectItems$1.<init>(UISelectItems.java:219) 
    at org.jboss.seam.ui.component.UISelectItems.asSelectItems(UISelectItems.java:195) 
    at org.jboss.seam.ui.component.UISelectItems.getValue(UISelectItems.java:178) 
    at com.sun.faces.renderkit.RenderKitUtils.getSelectItems(RenderKitUtils.java:289) 
    at com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(MenuRenderer.java:814) 
    at com.sun.faces.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:280) 

我覺得我的錯誤的來源有事情做與H:selectOneMenu用於但是我在selectItems的正確定義我var屬性。

<h:selectOneMenu value="#{myBean.user}"> 
    <s:selectItems value="#{myBean.userList}" var="_user" label="#{_user.name}" /> 
</h:selectOneMenu> 

有沒有人遇到過這個問題請幫忙。 我已經做了幾項研究,但沒有找到運氣。

謝謝。

+1

你能提供你的'h:selectOneMenu'的代碼嗎? – 2012-01-05 07:40:06

+0

我編輯了我的問題。 :)) – 2012-01-05 08:41:35

+0

你嘗試過var上的'_'嗎?例如'userVar'。另外,請確保您使用的是最新版本的seam,特別是如果您使用的是jsf2.0 – 2012-01-05 12:19:12

回答

2

這可以有2個原因:

  1. #{myBean.userList}返回null一個空列表。
  2. #{_user}已被預先聲明在範圍內。

要解決這個問題:

  1. 確保#{myBean.userList}不返回null也不是空的。
  2. 確保您沒有在視圖的任何其他位置使用#{_user}。給它一個不同的名字。
+0

你釘它主:))..我有兩個聲明的VAR屬性在我的視圖..我改變我的VAR的其他名稱和錯誤是gone.thnx – 2012-01-06 00:27:42

1

這是在頁面呈現時發生,還是在發生時更具體一些。我的建議是,某個地方你有類似this沒有var定義,這會導致錯誤。試着看看here看看如何使用h:selectOneMenu

+0

它發生在頁面加載..navigation..my var屬性在s:selectItems中設置。有時會出現這種錯誤,有時不會。 – 2012-01-05 07:57:19

相關問題