如何将值从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; } }
这会奏效。