2012-04-26 2 views
0

jsf 애플리케이션에서 데이터베이스에서 위도와 경도를 검색하고 Google map에 그 기능을 구현해야하는 기능을 개발 중입니다. gmaps4jsf 라이브러리는 google maps java script api v3으로 업데이트되지 않으므로 Google지도 Java 스크립트 API를 그대로 사용하고 있습니다. 문제는 위도와 경도 (jsf를 통해)를 검색 한 후지도에서 장소를 플롯하도록 스크립트를 호출 할 수 없다는 것입니다.JSF에서 backing bean 메소드를 사용하여 값을 가져온 후 Java 스크립트를 호출하는 방법

이 문제의 해결책은 무엇입니까?

+0

StackOverflow에 오신 것을 환영합니다. 우리는 귀하의 회사 이름/주소/등을 실제로 신경 쓰지 않습니다. 그래서 서명에 넣을 필요가 없습니다. – ThiefMaster

+1

서버에서 좌표를 정확히 얻으려면 어떻게해야합니까? 코드를 추가하십시오! –

답변

2

JSF가 JS 변수 인 것처럼 JSF에 인쇄하도록합니다. 같은과

<h:form> 
    <h:commandButton value="Submit" action="#{bean.submit}" /> 
</h:form> 
<h:outputScript rendered="#{not empty bean.lat and not empty bean.lon}"> 
    var lat = #{bean.lat}; 
    var lon = #{bean.lon}; 
    initializeMapSomehowWith(lat, lon); 
</h:outputScript> 

은 (당신이 오래된 JSF 1.x에서에 아직도 템플릿 텍스트에서 EL 대신 대신도 <h:outputText><h:panelGroup><script>를 사용하는 경우 <h:outputScript>는 HTML <script type="text/javascript"> 요소를 생성)

public void submit() { 
    lat = 12.106173; 
    lon = -68.935304; 
} 

기억하십시오 : JSF는 기본적으로 HTML을 생성합니다. JS는 HTML 응답의 일부입니다.

+0

입력 해 주셔서 감사합니다. 문제는 사용자가 jsf에서 lat 및 lon을 검색하는 버튼을 클릭 할 때이 액션을 수행해야하며이 값은 사용자의 click 이벤트에서 Java 스크립트를 사용하여지도의 위치를 ​​그려야한다는 것입니다. – Arun

+0

그런 다음 JSF가 HTML/JS 부분을 조건부로'rendered' 속성과 함께 일부 부모 ''에 조건부로 인쇄하게하십시오. 액션 메소드에서 당신은 물론'rendered' 조건이 디폴트'false' 대신에'true'를 평가할 것이라는 점에주의해야합니다. – BalusC

+0

죄송합니다. 실수로 반쯤 편집을 제출했습니다. 귀하의 의견을 보내 주셔서 감사합니다. 요구 사항 : 사용자가 버튼을 클릭 할 때 2 가지 작업을 수행해야합니다. 1. Lat 및 Lon 값은 백엔드에서 검색해야합니다 (jsf가 좋음). 2. 검색된 값은 Java 스크립트를 사용하여 맵에서 위치를 그려야합니다. 위의 조치 중 하나를 수행 할 수 있습니다. 문제는 위의 시퀀스에서 언급 한 두 가지를 모두 수행 할 수 없다는 것입니다. 제발 제안 해 줄래? – Arun

관련 문제