Как я могу передать значение из javascript в класс java в struts2?

function redirect(id){
alert(id);

document.forms["AddToCart"].submit();
}

Это мой javascript. Как передать значение id в AddToCart.java. Я использую раму struts2.

5 ответов

Вы можете сохранить значение в скрытом поле внутри своей формы, и поэтому, когда форма будет отправлена, значение будет отправлено в действие.

<form name="AddToCart" ...="">
...

.....
</form>

тогда

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 и seters и framework будет вводить значение формы в уважаемом свойстве

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 - это ваш класс Action Struts2, который вам нужно передать значение вашему классу из вашего вызываемого действия.


Мы должны сделать две вещи, чтобы отправить значение классу action в struts2

  • отправьте требуемое значение с определенным именем параметра
  • создайте переменную с тем же именем, что и в jsp & create setter, методы getter для этой переменной.

в классе действий

public class AddToCart{
private String itemId;

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

это сработает.


Поскольку вы отправляете форму, вы можете динамически создавать новый ввод в этой форме, содержащий идентификатор, который вы хотите отправить, а затем отправить форму.


Вы не можете напрямую связываться с client(javascript) на server side(java classes). Поскольку javascript выполняется вашим браузером, а классы Java выполняются вашим сервером. Поэтому вам нужно использовать Ajax request для связи с классами Java.

licensed under cc by-sa 3.0 with attribution.