2012-01-30 42 views
2

Netbeans 7.0でJSFを使用してWebアプリケーションを開発しています。私は2つのページを作成しました。ひとつは名前を入力し、その他はその名前を表示するためのページです。私はgetメソッドとsetメソッドを持つJava Beanを使用しています。ターゲットに到達できません、識別子 'demoBean'がnullに解決されました。

フォームの最初のページにフォームを送信するとエラーが発生します。

これは名前を受け入れるために、私の最初のページindex.xhtmlです:

<h:form> 
    Enter your Name : <h:inputText value="#{demoBean.name}" required="true"/> 
    <br/> <h:commandButton value="Submit" action="welcome.xhtml"/>  
</h:form> 

これは名前を表示するために、他のページwelcome.xhtmlです:

<h:body> 
    Hello #{demoBean.name} 
</h:body> 

これは管理Bean demoBean.javaです:

import javax.faces.bean.ManagedBean; 
import javax.faces.bean.SessionScoped; 

@ManagedBean() 
@SessionScoped 

public class demoBean { 
    private String name; 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 
} 

これは私がサブミットしたときに得たエラーですその拳ページ:

/index.xhtml 10,86 @値= "#{demoBean.name}":ターゲット到達不能、識別子 'demoBean'

+0

plsあなたのfaces-config.xmlを追加します。 – Kushan

+0

@クシャンどのようにしますか? –

+0

opps、faces-config.xmlにBeanを定義する必要があります。そうでなければ、Bean annotions – Kushan

答えて

4

JSPをnullに解決フレームワークはあなたのBeanクラス名がJavaの命名規則に従うことを期待しています。つまり、 "CamelCased"(例: DemoBean)、この場合、Bean名の最初の文字を小文字(demoBean)に変換したデフォルト名で、BeanがJSPで参照されると想定します。

フレームワークの期待を逸脱しているため、@ManagedBeanアノテーションまたはオプションのfaces-config.xmlファイルで指定することによって、JSPでBeanを参照する際の名前を指定する必要があります。

+0

私は傾けるfind faces-config file ..それを見つける場所.. –

+0

必須ではありません。 – BalusC

+0

デフォルトのクラス名を使用していたManagedBeanを使用していましたが、ManagedBean(name = "mybean")を使用しました。感謝してくれました@James McLeodとなぜ-1。 –

2

私は同様の問題がありました。私は余分な注釈を追加しました。 {@Named( "demobean")}

0

もう1つのことは、パスに必要なすべてのjarファイルがあることを確認することです。私は自分のPrimefaces 3.5ジャーを保存しているディレクトリを変更したので、Glassfishでこの問題を適切に設定し始めました。

関連する問題