2011-04-11 9 views
2

내가이 서비스 콩을 반환 URL이 bookedit.jsf?id=5418으로 반환되었습니다. 이해가 안됩니다.@ManagedProperty 주석 형은 널 (null)

또한 EntityManager#find 메서드는 두 번째 매개 변수로 기본 키 값만 받아 들일 수 있다는 점에서 상당히 제한적입니다. 기본 키 대신 [해시] 값을 전달하려면 어떻게해야합니까? 어떻게 EntityManager#find 방법으로이 작업을 수행 할 수 있습니까?

P. EntityManager#find 요구 사항이 OpenJPA 및 EclipseLink 구현 모두에서 동일하다는 것을 알았습니다. 흠 ...

+0

@PostConstruct에 주입 된 값을 사용하려고합니다. 나는 무엇이 먼저 일어날 지 모르겠습니다 - @ManagedProperty injection 또는 @PostConstruct. 확인해 봤어? – Osw

+0

@Osw :'@ PostConstruct'는 모든 종속성 삽입 후에 실행되므로 해당 부분이 정상입니다. – BalusC

+0

@BalusC : 당신은 DI와'@ PostContruct' 문서에 따라 정확합니다. 여전히 '5148'대신에 'null'을 얻는 이유를 모르겠습니다. 그것은 매우 이상하다! – ChuongPham

답변

2

난 그냥 내 관리 콩 중 하나에서 이것을 시도하고있다. 관련 코드는 다음과 같습니다.

@ManagedBean 
@RequestScoped 
public class TestBean { 
    @ManagedProperty(value = "#{param.id}") 
    private Long prop; 

    @PostConstruct 
    public void init() { 
     System.out.println(prop); 
     // prints 1234 if I go to the url with http://localhost/page.jsf?1234 
    } 

    public Long getProp() { 
     return prop; 
    } 

    public void setProp(Long prop) { 
     this.prop = prop; 
    } 
} 

나는 glassfish 3.1.1에서 실행하고 있습니다. 내가 가진 유일한 생각은 주입 된 EJB가 ManagedBean의 요청 범위를 어지럽히는 것일 수도 있습니다.