2012-09-24 8 views
3

나는 가입 후 사용자에게 링크가있는 이메일을 보내는 Spring + JSF 1.2 애플리케이션을 가지고있다.JSF 1.2의 URL에서 요청 매개 변수를 가져 오는 방법은 무엇입니까?

www.myapp.com/register.jsf?var=1

가 어떻게 내 JSF 뒷면 콩이 요청 매개 변수를 얻을 수 있습니다 : 링크 같은 요청 매개 변수가 포함? 당신이 당신의 bean을 관리하는 봄 또는 JSF를 사용하는 경우

+0

당신은 사람이 할 수있는 전에까지있어 위치를 표시하는 몇 가지 코드를 공유해야 할 수도 있습니다 도움. –

답변

4

그것은 분명하지 않다,하지만 표준 JSF 1.2, 당신은 var 정확한 요청 매개 변수의 이름입니다 #{param.var}의 값으로 <managed-bean><managed-property>로 등록해야합니다 : 여러분의 빈은 속성이있는 경우

<managed-bean> 
    ... 
    <managed-property> 
     <property-name>var</property-name> 
     <value>#{param.var}</value> 
    </managed-property> 
</managed-bean> 

그럼

private String var; // +setter (getter is not mandatory) 

당신은 액세스하고 @PostConstruct 방법으로이를 처리 할 수 ​​있습니다

를 완전히 다른 대안으로
@PostConstruct 
public void init() { 
    System.out.println("var is: " + var); 
} 

, 당신은 또한 요청 매개 변수에서 직접 얻을 수 있습니다

String var = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("var"); 
// ... 
+0

감사합니다. Alex와 BalusC가 대답했습니다. 글쎄, 나는 내 컨트롤러 세션 범위에서 methode getRequestParameterMap.get ("var")을 사용했지만 항상 var = NULL을 얻었고, 내 생성자에서 requestParameter methode를 호출했다. 내 가치. 하지만 내가 말했듯이, 내가 컨트롤러를 싱글 톤 범위로 변환 할 때 requesteParameter는 var에 대해 1을 반환하지만 싱글 톤 컨트롤러를 사용하는 서비스 형식을 호출 할 수 없다 : ( –

+0

세션 범위가 지정된 bean의 생성자는 HTTP 요청이있을 때가 아니라 세션이 시작될 때 호출됩니다. 콩 요청 범위를 대신합니다. – BalusC

+0

안녕 balusC, 나는 여전히 스틱 오전 :(, 내 관리 콩 요청 범위를 만들 때, 나는 같은 probeleme 있습니다. 내 DAO Methodes를 호출 할 수 없다. @Ressource를 사용하여 서비스를 호출한다. Spring 구조이다. –

관련 문제