2011-10-15 19 views
0

私は現在JSFとEJBを練習していますが、今は要求された情報を表示するページを取得できません。これには入力テキストと送信ボタン(input.xhtml)と予想される結果は、提出されたテキストを表示することです。私はそれを修正するためにすべてのものを試してみたIssue with EJB/JSF2.0

/input.xhtml @16,56 value="#{welcome.name}": Target Unreachable, identifier 'welcome' resolved to null 

、これはこれはBeanですinput.xthml

 <ui:define name="content"> 
      <h:form> 
       <h:panelGrid columns="3"> 
        <h:outputText value="Name:"/> 
        <h:inputText value="#{welcome.name}" title="name" id="name" 
           required="true" /> 
        <h:message for="name" style="color: red"/> 
       </h:panelGrid> 
       <h:commandButton action="show" value="submit"/> 
      </h:form> 

     </ui:define> 

    </ui:composition> 

の一部です。

@ManagedBean 
@RequestScoped 
public class Welcome { 
    private String name; 
    private String message; 

    public String getMessage() { 
     return "Hello " + name; 
    } 

    public void setMessage(String message) { 
     this.message = message; 
    } 

    public String getName() { 
     return name; 
    } 

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

答えて

3

コードはうまく見え、うまくいくはずです。これがJPAとEJBにどのように関係しているか分かりません。テストケースからJPA/EJBを削除したときとまったく同じ問題になるでしょうか?これらのタグとこの詳細を質問から離れることができます。具体的な問題については

あなたがimport宣言を省略しているため、私は症状が唯一あなたが実際にjavax.annotation package代わりのjavax.faces.bean packageから@ManagedBeanを輸入していることを推測与えることができます。前者は、BeanをJSFで管理することはしませんが、後者ではBeanを管理します。輸入品を確認して修正してください。 @RequestScopedjavax.enterprise.context packageからではなく、the same packageである必要があります。

import javax.faces.bean.ManagedBean; 
import javax.faces.bean.RequestScoped; 

@ManagedBean 
@RequestScoped 
public class Welcome { 
    // ... 
} 
0
write like this 

@ManagedBean(name="welcome") 
@RequestScoped 
public class welcome implements Serializable { 
private String name; 
} 

In html write like this 
<h:inputText value="#{welcome.name}" title="name" id="name" 
           required="true" />