2016-08-09 5 views
2

메소드를 호출 할 수 없습니다하지만 이 방법 getOnblur를 호출 할 수 없습니다 오류를 얻을SpringBoot 및 Bootsfaces : 나는 기능을 위해 onblur 사용하여 inputSecret의 값을 처리 할 getOnblur

<b:column span="3"> 
    <p:outputLabel value="#{msg.confirmPassword}" /> 
    <b:inputSecret value="#{workerDetail.confirmPassword}" onblur="#{workerDetail.checkPassword}"/> 
</b:column> 

이의 방법은 백킹 빈 :

public void checkPassword(AjaxBehaviorEvent event) 
{ 
    System.out.println(confirmPassword); 
} 

어떻게 해결할 수 있습니까?

답변

1

BootsFaces는 다른 JSF 프레임 워크와는 약간 다른 AJAX 접근법을 사용합니다. 아이디어는 자바 스크립트 콜백 함수를 사용하여 Java 백엔드 빈에서 메소드를 호출하는 것입니다. 그러나 우리는 다른 JSF 프레임 워크와의 호환성을 보존하기를 원하므로 사용자가 접근 할 수 없도록 유도 할 수 있습니다. 대신 AJAX 호출 앞에 ajax:이라는 접두어를 붙이기로 결정했습니다. 그 다음에 매개 변수 목록을 정의하는 EL 표현식이옵니다. 즉, 표준 JSF 이외의 BootsFaces는 이벤트 매개 변수를 전달하지 않습니다.

TL

, DR : 은 간단하게 다음처럼 onblur 속성을 변경 :

<b:column span="3"> 
    <p:outputLabel value="#{msg.confirmPassword}" /> 
    <b:inputSecret value="#{workerDetail.confirmPassword}" onblur="ajax:workerDetail.checkPassword()"/> 
</b:column> 

checkPassword을 다음 브래킷을 유의하시기 바랍니다. 이벤트가 트리거되어 Java 백엔드로 전송 될 때 실행되는 EL 표현식입니다. - 조기 태드 인

public void checkPassword() 
{ 
    System.out.println(confirmPassword); 
} 

당신의 접근 방식에 차이는 페이지가 렌더링 할 때 EL 표현식을 평가한다는 것입니다 :

결과 백업 콩 방법

이벤트 매개 변수를 필요로하지 않는다.

+0

지침에 따라 수행하지만 checkPassword 메소드가 호출되지 않습니다! – xc93hil

+0

정확히 무엇을했는지 모른 채 문제를 추적하는 것은 어렵습니다. 따라서 GitHut에서 문제의 작은 재생기를 공유하는 것이 좋습니다. 대부분의 경우이를 통해 실수를 빨리 찾을 수 있습니다. 미리 감사드립니다, Stephan –

+0

이제 작동합니다! checkPassword 메소드가 정기적으로 호출됩니다. 이 메소드에도 Faces 메시지를 삽입했다. FacesContext.getCurrentInstance(). addMessage (null, new FacesMessage (FacesMessage.SEVERITY_WARN, title, message)); 그러나 어떤 으르렁 거리는 소리도 보입니다. 여기 GitHub 레포 : https://github.com/cler27/TestWeb – xc93hil