2012-01-10 6 views
0

이 작업을 도와 주시겠습니까? 커맨드 버튼을 클릭하면 내 자바 스크립트에서 백킹 빈의 값을 얻으려고합니다.명령 단추를 클릭하면 Java 스크립트에서 bean 값을 어떻게 보완 할 수 있습니까?

이 내 JSF 명령 단추

<h:commandButton id="me" value="test" action="#{ques.conversiontostring}" 
     onclick="mystring()"/> 

내 콩 내가 MyString의 변수에 저장하고 문자열을 반환

function mystring() 
    { 
    var mystring = window.document.getElementById("form:me").click(); 
    alert(mystring); 

    } 

이 내 자바 스크립트 함수되지만, 내가 널 값을 얻을 경고 할 때. 누군가 그렇게하면 도움이 될 것입니다. 미리 감사드립니다.

답변

0

이런 뜻입니까?

<h:commandButton id="me" value="test" action="#{ques.conversiontostring}" 
    onclick="myFunction('#{ques.mystring}')"/> 

function myFunction(message) 
{ 
    alert(message); 
} 
+0

나는 똑같이 시도했지만, 여전히 널 값을 얻고 있습니다. – Harini

+0

@ user1101422 함수 인수로 전달 된 EL 표현식 주위에 아포스트로피가 있는지 확인하십시오. – mrembisz

1

조치 방법으로 설정 한 문자열 값을 표시 하시겠습니까? 완료되면 표시 할 수 있습니다. JSF와 JS는 코딩에서 예상대로 동기화되지 않는다는 것을 알아야합니다. JSF는 기본적으로 HTML 코드 생성기입니다. JS는 현재 HTML DOM 트리에서만 작동합니다. JSF가 HTML 응답이 웹 브라우저에 도착하면 JS 코드가 실행되도록 HTML 코드를 생성해야합니다.

이이 JS 가지고 있다고 가정 :

function show(string) { 
    alert(string); 
} 

그리고이 콩이 있다고 가정 : 당신은 JSF 1.x에서를 사용하는 경우

private String message; 

public void show() { 
    message = "Hello!"; 
} 

public String getMessage() { 
    return message; 
} 

, 다음과 같은 방법을 사용 :

<h:commandButton value="show" action="#{bean.show}" /> 
<h:panelGroup rendered="#{not empty bean.message}"> 
    <script>show('#{bean.message}');</script> 
</h:panelGroup> 

아약스를 지원하는 JSF 2.x를 사용하는 경우 다음 방법을 사용할 수도 있습니다.

<h:commandButton value="show" action="#{bean.show}"> 
    <f:ajax render="message" /> 
</h:commandButton> 
<h:panelGroup id="message"> 
    <h:panelGroup rendered="#{not empty bean.message}"> 
     <script>show('#{bean.message}');</script> 
    </h:panelGroup> 
</h:panelGroup> 
+0

JSF 2.2에서 위의 솔루션을 사용할 수 없습니다. ( – fuzzyanalysis

+0

@fuzzyanalysis : JSF 2.x 솔루션이 JSF 2.2에서도 작동합니다. – BalusC

+0

BalusC. 감사합니다. 결국 솔루션을 사용할 수있게되었습니다. 앞에서 언급 한 것처럼 자바 스크립트