繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM