function redirect(id){
alert(id);
document.forms["AddToCart"].submit();
}
Это мой джаваскрипт. Как я могу передать значение «id» в AddToCart.java. Я использую структуру struts2.
function redirect(id){
alert(id);
document.forms["AddToCart"].submit();
}
Это мой джаваскрипт. Как я могу передать значение «id» в AddToCart.java. Я использую структуру struts2.
Вы можете сохранить значение в скрытом поле внутри вашей формы, поэтому при отправке формы значение будет отправлено в действие.
<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();
}
последний шаг - создать аналогичное свойство в вашем классе действий с его геттером и сеттером, а фреймворк введет значение формы в уважаемое свойство.
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, иначе вам нужно передать значение вашему классу из вызываемого вами действия.
Вы не можете общаться с client(javascript)
на server side(java classes)
напрямую. Потому что javascript выполняется вашим браузером, а классы java выполняются вашим сервером. Поэтому вам нужно использовать Ajax request
для связи с классами Java.
Поскольку вы отправляете форму, вы можете динамически создать новый ввод в этой форме, содержащий идентификатор, который вы хотите отправить, а затем отправить форму.
Нам нужно сделать две вещи, чтобы отправить значение в класс действий в struts2.
создайте переменную с тем же именем, что и в jsp, и создайте методы setter, getter для этой переменной.
в классе действий
public class AddToCart{
private String itemId;
public String getItemId(){
return itemId;
}
public void setItemId(String id){
this.itemId=id;
}
}
это сработает.