function redirect(id){
alert(id);
document.forms["AddToCart"].submit();
}
这是我的javascript。如何将'id'的值传递给AddToCart.java。我正在使用struts2框架。
答案 0 :(得分:4)
您可以将值存储在表单内的隐藏字段中,因此在提交表单时,该值将发送给Action。
<form name="AddToCart" ... >
...
<input type="hidden" id="myid"/>
.....
</form>
然后
function redirect(id){
document.getElementById('myid').value = id;
document.forms["AddToCart"].submit();
}
答案 1 :(得分: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
属性下的action类中获取值。我假设AddToCart
是您的Struts2 Action类,否则您需要将值从被调用的操作传递给您的类。
答案 2 :(得分:0)
您无法直接从client(javascript)
与server side(java classes)
进行通信。
因为javascript是由您的浏览器执行的,而java类是由您的服务器执行的。
因此,您需要使用Ajax request
与java类进行通信。
答案 3 :(得分:0)
由于您正在提交表单,因此您可以在该表单中动态创建包含您要发送的ID的新输入,然后提交表单。
答案 4 :(得分:0)
我们必须做两件事来在struts2
中向action类发送一个值创建jsp&amp;中提到的同名变量为该变量创建setter,getter方法。
在动作类
中public class AddToCart{
private String itemId;
public String getItemId(){
return itemId;
}
public void setItemId(String id){
this.itemId=id;
}
}
这将有效。