1

私はselectOneMenuを持っています

        <h:selectOneMenu id = "current" value = "#{helloBean.currentLanguage}">
        <f:selectItems value="#{helloBean.categoryLanguages}"></f:selectItems>
        <f:ajax render = "ccData"></f:ajax>
    </h:selectOneMenu>

こちらがハロービーン

@ManagedBean(name="helloBean")
@SessionScoped
public class HelloBean implements Serializable {
    private String currentLanguage;

    public void setcurrentLanguage(String currentLanguage){
        this.currentLanguage = currentLanguage;
        }
}

currentLanguage の設定に問題があります。Eclipse は、#{helloBean.currentLanguage}式が設定できないというエラー メッセージを表示します。プロジェクトを実行すると、エラーが発生します

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

1 に答える 1

2

BalusC が指摘したように、Java では大文字と小文字が区別されます。
したがって、次のように記述する場合: value=#{helloBean.currentLanguage}JSF は、その属性 (currentLanguage) のセッターとゲッターを定義することを想定しています。

public void setCurrentLanguage(String language){
  this.currentLanguage = language;//Or whatever
}

(現在は上の C に注目。そして getter を追加)
Eclipse を使用しているので、クラスのアクセス メソッドを自動的に生成してみてください。(右クリック -> ソース -> ゲッターとセッターの生成)

于 2013-05-17T20:18:25.137 に答える