【问题标题】:ELException - Property not found - JSF 2.1ELException - 找不到属性 - JSF 2.1
【发布时间】:2015-10-14 11:19:58
【问题描述】:

我们的应用程序在 WebSphere 8.5 上使用 JSF (MyFaces, Trinidad) 1.2 运行。我们正在将其升级到 JSF 2.1。我在 JSF 2.1 中遇到以下异常

JSPX 代码:#{loginBackingBean.switchSkin}
Java 代码:public String switchSkin() {...} - 这是一种方法。

原因:javax.el.E​​LException:/header.jspx:在类型 com.LoginBackingBean 上找不到属性“switchSkin” 在 org.apache.myfaces.view.facelets.compiler.AttributeInstruction.write(AttributeInstruction.java:55) 在 org.apache.myfaces.view.facelets.compiler.UIInstructions.encodeBegin(UIInstructions.java:46)

000001ba ServletWrappe E com.ibm.ws.webcontainer.servlet.ServletWrapper 服务 SRVE0014E:未捕获的服务()异常根本原因面临:javax.servlet.ServletException:/header.jspx:在类型 com 上找不到属性“switchSkin”。登录BackingBean 在 javax.faces.webapp.FacesServlet.service(FacesServlet.java:229) 在 com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1230)

注意: JSF 1.2 和 2.0不会出现同样的异常。
请帮我解决这个问题。

【问题讨论】:

  • 您是否将 Trinidad 升级到 JSF 2.x 兼容版本?
  • 以及如何/在哪里/应该调用它?
  • @Kukeltje:堆栈告诉我们正在编写一个普通的 XML/HTML 元素属性,就像<xxx attr="#{bean.action}"> 一样。如果<xxx> 应该是一个JSF 组件,这反过来表明它没有被识别为这样。鉴于 OP 正在使用 JSPX 并且 JSF 2.0 开始以与 Facelets 相同的方式对待它们,并且 OP 从 JSF 1.x 迁移,这反过来表明 OP 没有使用 JSF 2.0 / Facelets 兼容的标记库,而只使用了 JSF 1.x/JSP 一。解决方案是将该组件库升级到与 JSF 2.x 兼容的库,或者将视图技术从 JSPX 降级到 JSP。
  • 非常好。好久没用jsf1了。但我想看看代码。由于奇怪的原因 PrimeFaces 未完全/正确部署时,我遇到了类似的错误。通常应该调用的动作被 facelets 解释为 getter
  • @BalusC 抱歉延迟回复。我已经将 Facelets 从 1.X 更新到 2.X,但我没有更新 XMLNS,因此,我得到了这些错误。我通过为 jstl 更正 XMLNS 解决了这个问题。非常感谢。 http://java.sun.com/jstl/core 至:http://java.sun.com/jsp/jstl/core

标签: jsf-2 el facelets


【解决方案1】:

我已经将 Facelets 从 1.X 更新到 2.X,但我没有更新 XMLNS,因此我得到了这些错误。我通过为 jstl 更正 XMLNS 解决了这个问题。
http://java.sun.com/jstl/core
致:
http://java.sun.com/jsp/jstl/core

【讨论】:

    猜你喜欢
    • 2013-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-15
    • 1970-01-01
    • 1970-01-01
    • 2012-08-02
    相关资源
    最近更新 更多