如何将值从javascript传递到struts2中的java类?

function redirect(id){ alert(id); document.forms["AddToCart"].submit(); } 

这是我的javascript。 如何将’id’的值传递给AddToCart.java。 我正在使用struts2框架。

您可以将值存储在表单内的隐藏字段中,因此在提交表单时,该值将发送给Action。

 
... .....

然后

 function redirect(id){ document.getElementById('myid').value = id; document.forms["AddToCart"].submit(); } 

有很多方法可以做到这一点,其中一个简单的方法是将其作为隐藏的表单字段传递

就像是

  

并在你的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类,否则你需要从你的被调用的动作将值传递给你的类。

您无法直接从client(javascript)server side(java classes)进行通信。 因为javascript是由您的浏览器执行的,而java类是由您的服务器执行的。 因此,您需要使用Ajax request与Java类进行通信。

由于您要提交表单,因此您可以在该表单中动态创建包含您要发送的ID的新输入,然后提交表单。

我们必须做两件事来将值发送到struts2中的action类

  • 使用特定参数名称发送所需的值
  • 使用jsp和create setter中提到的相同名称创建变量,该变量的getter方法。

在行动课上

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

这会奏效。