JSF selectOneMenu-设置bean中的值

JSF selectOneMenu-设置bean中的值,jsf,selectonemenu,Jsf,Selectonemenu,我有一个菜单 <h:selectOneMenu id = "current" value = "#{helloBean.currentLanguage}"> <f:selectItems value="#{helloBean.categoryLanguages}"></f:selectItems> <f:ajax render = "ccData"></f:ajax> </h

我有一个菜单

        <h:selectOneMenu id = "current" value = "#{helloBean.currentLanguage}">
        <f:selectItems value="#{helloBean.categoryLanguages}"></f:selectItems>
        <f:ajax render = "ccData"></f:ajax>
    </h:selectOneMenu>
我对当前语言的设置有问题。Eclipse显示一条错误消息,
{helloBean.currentLanguage}
表达式不可设置。当我运行我的项目时,我得到一个错误

javax.servlet.ServletException: /hello.xhtml @19,74 value="#{helloBean.currentLanguage}": Property 'currentLanguage' not readable on type java.lang.String

正如BalusC指出的,Java是区分大小写的。
因此,当您编写:
value=#{helloBean.currentLanguage}
JSF希望您定义该属性(currentLanguage)的setter和getter:

(注意current.中的上C,并添加一个getter)

由于您正在使用Eclipse,请尝试自动生成类的访问方法。(右键单击->源->生成getter和setter)

Java区分大小写。更多地关注和喜爱区分大小写。此外,您还忘记了getter方法。这两个错误都相当基本/微不足道。再次阅读JSF书籍/教程/资源,或者寻找更好的。您可以从我们的JSF wiki页面开始(将
[JSF]
标记悬停在问题下方,然后单击信息链接)。
javax.servlet.ServletException: /hello.xhtml @19,74 value="#{helloBean.currentLanguage}": Property 'currentLanguage' not readable on type java.lang.String
public void setCurrentLanguage(String language){
  this.currentLanguage = language;//Or whatever
}