2011-10-15 2 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 

, 이것은이 빈입니다 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" />