![](/img/trans.png)
[英]How can i pass a parameters to action method using javascript fetch?
[英]How to pass JavaScript variables as parameters to JSF action method?
我正在用JavaScript准備一些變量(在我的特定情況下,我想獲取GPS位置):
function getVars() {
// ...
var x = locationInfo.lng;
var y = locationInfo.lat;
}
我想通過以下命令按鈕將它們發送到我的托管bean:
<h:commandButton value="submit" onclick="getVars()" action="#{bean.submit(x,y)}" />
public void submit(int x, int y) {
// ...
}
如何將JavaScript中的x
和y
變量發送到JSF托管bean操作方法?
讓JS以相同的形式將它們設置為隱藏的輸入值。
<h:form id="formId">
<h:inputHidden id="x" value="#{bean.x}" />
<h:inputHidden id="y" value="#{bean.y}" />
<h:commandButton value="submit" onclick="getVars()" action="#{bean.submit}" />
</h:form>
function getVars() {
// ...
var x = locationInfo.lng;
var y = locationInfo.lat;
document.getElementById("formId:x").value = x;
document.getElementById("formId:y").value = y;
}
命令按鈕操作方法可以按通常方式將它們作為bean屬性進行訪問。
private int x;
private int y;
public void submit() {
System.out.println("x: " + x);
System.out.println("y: " + y);
// ...
}
// Getters+setters.
一種替代方法是使用OmniFaces <o:commandScript>
或PrimeFaces <p:remoteCommand>
代替<h:commandButton>
。 另請參見如何使用本機JavaScript在HTML DOM事件上調用JSF管理的bean?
如果使用PrimeFaces ,則可以使用鏈接到托管bean的隱藏輸入字段,並且可以使用javascript初始化其值,對於PrimeFaces,可以使用PF函數來訪問鏈接到該隱藏輸入的小部件變量。 :
<script type="text/javascript">
function getVars() {
// ...
var x = locationInfo.lng;
var y = locationInfo.lat;
PF('wvx').jq.val( lat1 );
PF('wvy').jq.val( lng1 );
}
</script>
<p:inputText type="hidden" widgetVar="wvx" value="#{bean.x}" />
<p:inputText type="hidden" widgetVar="wvy" value="#{bean.y}" />
<h:form id="formId">
<h:inputHidden id="x" value="#{bean.x}" />
<h:inputHidden id="y" value="#{bean.y}" />
<h:commandButton value="submit" onclick="getVars()" action="#{bean.submit}" />
<script>
function getVars() {
var x;
var yt;
x=#{bean.x};
y=#{bean.y};
}
</script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.