javax.el.PropertyNotFoundException:类'xxx'没有可读属性'yyy'



我有以下会话范围的CDI托管Bean:

@Named
@SessionScoped
public class RegisterController implements Serializable {   
    private static final long serialVersionUID = 1L;
    @Inject
    private MitgliedAbc mitgliedAbc;
    public MitgliedAbc getMitgliedABC() {
        return mitgliedAbc;
    }
    public void setMitgliedAbc (MitgliedAbc mitgliedAbc) {
        this.mitgliedAbc = mitgliedAbc;
    }
}

以及以下 JSF 形式的输入:

<h:inputText value="#{registerController.mitgliedAbc.mgEmail}" />

部署到 GlassFish 4.1 并在浏览器中打开页面时,会引发以下异常:

javax.el.PropertyNotFoundException:/register.xhtml @27,66 value="#{registerController.mitgliedAbc.mgEmail}":类 'com.example.RegisterController' 不 具有可读属性"mitgliedAbc"。

这是如何造成的,我该如何解决?

javax.el.PropertyNotFoundException:类 'xxx' 没有可读属性 'yyy'

这基本上意味着类xxx没有属性yyy的(有效的)getter 方法。

换句话说,以下 EL 表达式应输出值,

#{xxx.yyy}

无法在类 xxx 上找到public Yyy getYyy()方法。

在您的特定情况下,使用以下 EL 表达式,

#{registerController.mitgliedAbc}

它无法找到public MitgliedAbc getMitgliedAbc()财产。

事实上,这种方法并不存在。它被命名为getMitgliedABC()而不是getMitgliedAbc()

相应地修复方法名称以完全匹配getYyy()并绝对确保它是public和非static

public MitgliedAbc getMitgliedAbc() {
    return mitgliedAbc;
}

另请参阅:

  • javax.el.PropertyNotFoundException: 在 com.example.Bean 类型上找不到属性 'foo'
  • 识别和解决 javax.el.PropertyNotFoundException: Target Unreachable

我遇到了同样的错误,我得到了解决方案

这是我的电磁脉冲模型

public class Emp {
    private String Eid;
    private String Ename;
    private String Mobile;
    private String Email;
    public String getEid() {
        return Eid;
    }
    public void setEid(String Eid) {
        this.Eid = Eid;
    }
    public String getEname() {
        return Ename;
    }
    public void setEname(String Ename) {
        this.Ename = Ename;
    }
.........etc

和我的控制器方法

 @RequestMapping(value="/welcome", method=RequestMethod.POST)
    public ModelAndView CtrlMethod(@ModelAttribute("employee1") Emp employee1) {
         ModelAndView model = new ModelAndView("hellopage");
         return model;    
    }

在我的(hellopage.jsp)JSP页面中,我像波纹管一样提到,它对我有用。

 ${employee1.getEid()}
 ${employee1.getEname()}
 ${employee1.getMobile()}
 ${employee1.getEmail()} 

最新更新