[英]how can i pass value from javascript to a java class in struts2?
function redirect(id){
alert(id);
document.forms["AddToCart"].submit();
}
这是我的javascript。 我如何将'id'的值传递到AddToCart.java中。 我正在使用struts2框架。
您可以将值存储在表单内部的隐藏字段中,因此在提交表单时,该值将发送到Action。
<form name="AddToCart" ... >
...
<input type="hidden" id="myid"/>
.....
</form>
然后
function redirect(id){
document.getElementById('myid').value = id;
document.forms["AddToCart"].submit();
}
有很多方法可以做到这一点,一种简单的方法是将其作为隐藏的表单字段传递
就像是
<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类,否则您需要将值从调用的动作传递给您的类。
您不能直接从client(javascript)
与server side(java classes)
。 因为javascript是由浏览器执行的,而java类是由服务器执行的。 因此,您需要使用Ajax request
与Java类进行通信。
由于您要提交表单,因此可以在该表单中动态创建一个新输入,其中包含要发送的ID,然后提交表单。
我们必须做两件事才能将值发送给struts2中的action类
创建与jsp中提到的名称相同的变量并为该变量创建setter,getter方法。
动作课
public class AddToCart{
private String itemId;
public String getItemId(){
return itemId;
}
public void setItemId(String id){
this.itemId=id;
}
}
这将起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.