function redirect(id){
alert(id);
document.forms["AddToCart"].submit();
}
這是我的javascript。我如何將'id'的值傳遞給AddToCart.java。我正在使用struts2框架。我怎樣才能將值從JavaScript傳遞給struts2中的java類?
function redirect(id){
alert(id);
document.forms["AddToCart"].submit();
}
這是我的javascript。我如何將'id'的值傳遞給AddToCart.java。我正在使用struts2框架。我怎樣才能將值從JavaScript傳遞給struts2中的java類?
您可以將值存儲在表單內的隱藏字段中,因此當提交表單時,該值將被髮送到Action。
<form name="AddToCart" ... >
...
<input type="hidden" id="myid"/>
.....
</form>
然後
function redirect(id){
document.getElementById('myid').value = id;
document.forms["AddToCart"].submit();
}
您不能直接從client(javascript)
到server side(java classes)
進行通信。 因爲JavaScript是由您的瀏覽器執行的,並且java類是由您的服務器執行的。 所以你需要使用Ajax request
與java類進行通信。
由於您正在提交表單,因此您可以在該表單中動態創建一個包含您希望發送的標識的新輸入,然後提交表單。
有很多方法可以做到這一點,的簡單的方法之一是把它作爲一個隱藏的表單字段
像
<s:hidden value="" name="my_ID" id="my_ID"/>
並在你的JavaScript你需要設置這個隱藏的輸入字段,如
function redirect(id){
alert(id);
document.getElementById("my_ID").value=id;
document.forms["AddToCart"].submit();
}
最後一步是與它的getter和setter方法和框架,你的動作類來創建一個類似的屬性將在尊重產權
public class MyAction extends ActionSupport{
private String my_ID // data type can be as per your requirements
getter and setters
public String execute() throws Exception{
return SUCCESS;
}
}
注入的形式價值,這是所有你需要做的,你將能夠在my_ID
屬性下獲得行動類中的價值。我假設AddToCart
是你的Struts2 Action類,否則你需要從被調用的action中將值傳遞給你的類。
感謝U.我已經嘗試隱藏字段,我從我的Java類中獲取值。 – Hari 2012-02-02 11:35:33
@哈里如果這解決了你的問題,你可以標記答案被接受 – 2012-02-02 11:40:59
我們必須做兩兩件事來的值發送到動作類在Struts2
創建與JSP &創建二傳手提到的同名變量,該變量的getter方法。
在動作類
public class AddToCart{
private String itemId;
public String getItemId(){
return itemId;
}
public void setItemId(String id){
this.itemId=id;
}
}
這會工作。
謝謝你。我試圖通過使用隱藏字段來實現這一點,它爲我工作。 – Hari 2012-02-02 11:36:54
只需要Ajax,只要他想在不重新加載頁面的情況下執行它,您總是可以通過向url字符串添加參數或通過提交表單 – anu 2012-02-02 14:29:42
感謝@anu來糾正我的錯誤,從而將參數傳遞給java類。 – 2012-02-02 14:34:32