此错误"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. #{myBean.userList}已返回null或空列表
  2. #{_user}已预先在作用域中声明

解决方法:

  1. 确保#{myBean.userList}不返回null,也不为空
  2. 请确保您没有在视图中的其他任何位置使用#{_user}。给它取一个不同的名字

在呈现页面时会发生这种情况吗?或者它出现的时间有更具体的信息吗。我的建议是,在某个地方,你有这样的东西,但没有定义var,这会导致错误。请尝试查看此处以了解如何使用h:selectOneMenu

最新更新