我正在制作一个公交路线项目,我需要谷歌地图来固定站点和站点,,,我从JavaScript中获取谷歌地图的坐标,现在我需要将这些坐标传递给一个java类,其中我可以在这些坐标上进行不同的处理。我在netbeans上使用JSF -Java服务器面。任何人都可以帮助我将这些坐标传递给.java类吗? 提前致谢
答案 0 :(得分:1)
有许多框架可以帮助您解决这个问题。例如,Primefaces有一个内置于他们的新JSF实现(http://www.primefaces.org/showcase-labs/ui/gmapHome.jsf)的谷歌地图插件。手工完成也很容易。只需设置一个Servlet来处理GET请求,并使用您希望将数据发送到Servlet的任何Ajax方法。我首先寻找一些Servlet和Ajax示例。同样,根据您正在使用的JSF的实现,可能已经内置了Ajax工具。
祝你好运。分享并享受。
答案 1 :(得分:0)
<h:inputHidden value="#{bean.value}"/>
。<h:inputHidden value="#{bean.value}"/>
以更新其bean值。这是一个有效的例子:
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
@ManagedBean
@ViewScoped
public class Bean {
private String value;
@PostConstruct
public void postConstruct() {
value = "SERVER SIDE VALUE";
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
<h:head>
<script>
function updateElementValue(id,value){
document.getElementById(id).value = value;
}
</script>
</h:head>
<h:body>
<h:form id="form" prependId="false">
<p:commandButton value="UPDATE CLIENT SIDE VALUE OF INPUT-HIDDEN"
onclick="updateElementValue('nameInputHiddenId',
'CLIENT SIDE VALUE');
return false;"/>
<p:commandButton value="UPDATE SERVER SIDE VALUE OF INPUT-HIDDEN"
process="@form"
update="dialogId"
oncomplete="dialogWidgetVar.show();" />
<h:inputHidden id="nameInputHiddenId" value="#{bean.value}" />
<p:dialog id="dialogId" widgetVar="dialogWidgetVar">
<h:outputText id="nameOutputTextId" value="#{bean.value}" />
<p:commandButton value="Yes" onclick="dialogWidgetVar.hide();" />
<p:commandButton value="No" onclick="dialogWidgetVar.hide();"/>
</p:dialog>
</h:form>
</h:body>
答案 2 :(得分:0)
您可以使用<a4j:jsFunction>
将javascript
值传递给托管bean。这是一个例子。
这是您的js
数组
<script>
var coordinateArray = [12, 26];
</script>
这是你的页面。请注意,sendData
是jsFunction
的名称,coordinateArray.join()
将数组转换为字符串。
<h:form>
<a4j:commandButton value="Send" onclick="sendData(coordinateArray.join())"/>
<a4j:jsFunction name="sendData">
<a4j:actionparam name="param1" assignTo="#{hBean.coordinatesString}" />
</a4j:jsFunction>
</h:form>
在你的托管bean中
String coordinatesString;
String[] coordinatesArray;
public String getCoordinatesString() {
return coordinatesString;
}
public void setCoordinatesString(String coordinatesString) {
this.coordinatesString = coordinatesString;
this.coordinatesArray = coordinatesString.split(",");//This is what you need
}
编辑:
<小时/> 将a4j:jsFunction
视为普通javascript
函数。您可以在其中放置actionParam
,如上例所示。如果是这样,则意味着jsFunction
有一个参数(类似于普通的javascript函数参数)。您给jsFunction
一个名称,并使用给定的名称(如普通javascript
函数(即funcName()
)来调用它。如果其中有actionparam
,您应该在调用它时传递一个参数(即funcName(value)
)。<h:form>
不应该围绕它。但是,如果您想在click
commandButton
时调用它,则该按钮应位于表单中。 path
,那么您可以像这样调用上面的jsFunction
。 sendData(path.join())
。您不会在javascript
中添加任何jsFunction
代码。 只需在调用普通jsFunction
功能时,就可以通过javascript
代码拨打javascript
。