我想從傳單地圖(javascript)獲取座標並將它們傳遞給我的託管bean。爲了JavaScript變量發送到我的託管bean,我用了答案here將java變量傳遞給java bean
這裏是我使用 代碼中的JSF:
<h:form id="formId">
<h:inputHidden id="x" value="#{mapbean.latt}" />
<h:inputHidden id="y" value="#{mapbean.longt}" />
<p:remoteCommand name="myRemote" action="#{mapbean.displayLatLong()}" immediate="true" />
</h:form>
<script type="text/javascript">
function onClick(e) {
var ff = e.latlng.lat;
ff2= e.latlng.lng;
document.getElementById("formId:x").value = ff;
document.getElementById("formId:y").value = ff2;
myRemote();
}
</script>
豆子:
//....
public int latt;
public int longt;
public void displayLatLong(){
System.out.println("x: " + latt);
System.out.println("y: " + longt);
}
//getters and setters
我我沒有得到錯誤,但格子和longt的值始終是0. ps:格子和longt是標記的座標(單張標記) 編輯:正如Holger在他的評論中所說的,表單沒有提交,所以修改remoteCommand解決了我的問題。這裏是修改:
<p:remoteCommand name="myRemote" process="@form" actionListener="#{mapbean.displayLatLong()}" />
人士來電'的onClick()'? – Holger
它是標記上的點擊監聽器。我通過以下命令在我的bean中定義它: 'RequestContext.getCurrentInstance()。execute(「layer.on('click',onClick)」);' onClick正在工作,我通過顯示一條警告來測試它(在onClick中添加了這一行代碼:'alert(「lat/long:」+ x +「,」+ y);' – DarkSide
如果調用你應該看看你的瀏覽器控制檯生成一個POST請求,我不這麼認爲,因爲你調用了remoteCommand而沒有人提交表單 – Holger