2011-10-15 2 views
0

В настоящее время я занимаюсь JSF и EJB, но сейчас я не могу получить страницу для показа запрашиваемой информации, у нее есть входной текст и кнопка отправки (input.xhtml) и ожидаемые результатом является отображение представленного текста.Проблема с EJB/JSF2.0

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

Я пробовал все, чтобы исправить это, это часть 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 заявления, я могу, учитывая симптомы только догадываться, что вы на самом деле импорта @ManagedBean из javax.annotation package вместо javax.faces.bean package. Первый не будет управлять bean-файлом JSF, но последнее будет делать. Проверьте и исправьте свой импорт. Обратите внимание, что @RequestScoped также должен быть от the same package, а не от javax.enterprise.context 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" /> 
Смежные вопросы