URL을 통해 매개 변수를 전달하고이 매개 변수가 전달되거나 통과되지 않으면 특정 작업을 실행할 수 있습니다. JSF + Richfaces를 사용하고 있습니다.GET 요청 매개 변수를 ExternalContext에서 사용할 수 없습니다. # getRequestParameterMap()
예를 들어내가 HTTP에 액세스하려고하면 : // localhost를/MyApp를/home.jsf
public class My Bean {
private boolean printHello = false;
public MyBean(){
FacesContext fc = FacesContext.getCurrentInstance();
String printHello = fc.getExternalContext().getRequestParameterMap().get("printHello");
if (printHello != null && printHello.equals("true")
printHello = true;
}
public void myFunction() {
if (printHello)
System.out.println("test");
//other stuff
//ask for some user input
}
//When user validate his input, this function is called
public void myFunction2() {
//some stuff
}
}
내가하여 myFunction()에서 사용자의 입력을 요구하고, 나는 또한이 내 페이지에서 모든 과정을 시작하는 링크. 해당 링크를 클릭 한 다음 수동으로 URL을 http : // localhost/myapp/home.jsf? printHello = true로 변경하면
빈이 지워지지 않고 내 printHello 플래그가 여전히 false로 설정됩니다. 또한
다음 다시 실행됩니다 :
이FacesContext fc = FacesContext.getCurrentInstance();
String printHello = fc.getExternalContext().getRequestParameterMap().get("printHello");
printHello가 null이 될 것입니다, 내가 얻을 해달라고 이잖아. 어쩌면 모든 페이지가 다시 렌더링되지 않는다는 사실 때문일 수 있습니까?
빈은 어떤 범위에 있습니까? 생성자가 매번 호출 되나요? 아마 당신은 몇 jsf xhtml 소스 코드를 게시 할 수 있습니까? – roel