2012-02-02 31 views

回答

4

您可以將值存儲在表單內的隱藏字段中,因此當提交表單時,該值將被髮送到Action。

<form name="AddToCart" ... > 
... 
<input type="hidden" id="myid"/> 
..... 
</form> 

然後

function redirect(id){ 
document.getElementById('myid').value = id; 

document.forms["AddToCart"].submit(); 
} 
0

您不能直接從client(javascript)server side(java classes)進行通信。 因爲JavaScript是由您的瀏覽器執行的,並且java類是由您的服務器執行的。 所以你需要使用Ajax request與java類進行通信。

+0

謝謝你。我試圖通過使用隱藏字段來實現這一點,它爲我工作。 – Hari 2012-02-02 11:36:54

+0

只需要Ajax,只要他想在不重新加載頁面的情況下執行它,您總是可以通過向url字符串添加參數或通過提交表單 – anu 2012-02-02 14:29:42

+0

感謝@anu來糾正我的錯誤,從而將參數傳遞給java類。 – 2012-02-02 14:34:32

0

由於您正在提交表單,因此您可以在該表單中動態創建一個包含您希望發送的標識的新輸入,然後提交表單。

4

有很多方法可以做到這一點,的簡單的方法之一是把它作爲一個隱藏的表單字段

<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中將值傳遞給你的類。

+0

感謝U.我已經嘗試隱藏字段,我從我的Java類中獲取值。 – Hari 2012-02-02 11:35:33

+0

@哈里如果這解決了你的問題,你可以標記答案被接受 – 2012-02-02 11:40:59

0

我們必須做兩兩件事來的值發送到動作類在Struts2

  • 發送所需的值與特定的參數名稱
  • 創建與JSP &創建二傳手提到的同名變量,該變量的getter方法。

在動作類

public class AddToCart{ 
private String itemId; 

public String getItemId(){ 
return itemId; 
} 
public void setItemId(String id){ 
this.itemId=id; 
} 
} 

這會工作。

相關問題