2012-11-28 4 views
0

문제는 내 문제와 동일하기 때문에이 문제를 참조하십시오.하지만 내 상황에서는 솔루션을 사용할 수 없다고 생각합니다.명령 단추 두 번 누르기의 계속 추가

continuation of pressing button twice

내가 작성하여 제출해야하는 형태의 일련의 워크 플로를 가지고 있고, 사용자가 "다음"버튼을 클릭 한 후 나는 모달 오버레이를 표시하고 싶습니다. 이 오버레이를 표시하려면 명령 단추에 ajax를 사용하도록 지정해야합니다. 이로 인해 연결된 문제에서 설명한대로 원하지 않는 동작이 발생합니다.

링크 된 문제에 대한 해결책은 "탐색을 위해 Ajax를 사용하지 마십시오."것처럼 보였습니다. 그러나 제 경우에는이 대기중인 대화를 표시해야 할 수도 있습니다. 다음 페이지의 뷰 상태가 올바르게 업데이트되도록 보장하는 다른 방법이 있습니까? 그래야 계속 탐색 할 때 버튼을 두 번 누를 필요가 없습니다.

저는 Primefaces 3.3.1을 사용하고 있습니다.

<p:commandButton id="nextCommand" value="Next" 
    action="#{backingBean.processInputAndDetermineOutcome}" 
    onclick="waiter.show();" oncomplete="waiter.hide();"> 
    <f:param name="validate" value="true" /> 
</p:commandButton> 

은 "검증"PARAM 내 "뒤로"버튼을 눌러 양식을 제출하고 valdations 중 하나를 처리하지 않고 모델을 업데이트 할 수 있도록 내가 정의 BeanValidator에 사용하고 플래그입니다. 이 질문에 영향을 미쳐야한다고 생각하지 않지만이 명령에 다른 부분이 무엇인지 언급해야한다고 생각합니다 .Button.

답변

1

가장 좋은 방법은 리디렉션으로 이동하는 것입니다. 여기에 제안 된

public String processInputAndDetermineOutcome() { 
    // ... 

    return outcome + "?faces-redirect=true"; 
} 

그렇지 않으면, 당신이 실제로 만하지 다른, 더 제정신, 브라우저에서 IE 브라우저에서 문제를 관찰하는 경우 확실히, 당신은 PrimeFaces 특정 자바 스크립트 수정을 시도 할 수 있습니다 : JSF Language switcher and ajax update를 .

<f:ajax>에서 실제로 문제를 관찰하고 <p:ajax>이 아닌 경우 여기에서 제안 된대로 JSF 관련 JavaScript 수정을 시도하십시오 (h:commandButton/h:commandLink does not work on first click, works only on second click).

+0

저는 실제로 IE에서 이것을 시도하지 않았습니다. Firefox에서 본 동작이 실제로있었습니다. 또한 특별히 ajax 구성 요소를 추가하는 것이 아니라 기본 Ajax 동작과 함께

을 사용합니다. 그러나 faces-redirect = true 매개 변수를 추가하는 것이 내 문제를 해결했습니다. 고맙습니다! – user1535568

관련 문제