1
function redirect(id){
alert(id);

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

This is my javascript. How can i pass the value of 'id' into AddToCart.java. I am using struts2 framework.

5 Answers 5

4

You can store the value in a hidden field inside your form and so when the form is submitted the value will be sent to Action.

<form name="AddToCart" ... >
...
<input type="hidden" id="myid"/>
.....
</form>

then

function redirect(id){
document.getElementById('myid').value = id;

document.forms["AddToCart"].submit();
}
Sign up to request clarification or add additional context in comments.

Comments

4

There are many ways to do this and one of the easy way is to pass it as a hidden form field

something like

<s:hidden value="" name="my_ID" id="my_ID"/>

and in you javascript you need to set this hidden input field like

function redirect(id){
alert(id);
document.getElementById("my_ID").value=id;
document.forms["AddToCart"].submit();
}

final step is to create a similar property in your action class with its getter and setters and framework will inject the form value in the respected property

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;
  }

}

this is all you need to do and you will able to get the value inside your action class under my_ID property. I am assuming that AddToCart is your Struts2 Action class else you need to pass the value to your class from your called action.

1 Comment

Thank U. I have tried with hidden field and i am getting the value in my java class from javascript.
0

You can not communicate from client(javascript) to server side(java classes) directly. Because javascript is executed by your browser and java classes are executed by your server. So you need to use Ajax request to communicate with java classes.

2 Comments

Thanks You. I have tried implementing this by using hidden field and it is working for me.
Ajax is only needed if he wants to do it without reloading the page, you can always pass parameters to java classes either by adding parameters to url string or by submitting a form
0

Since you're submitting a form, you can dynamically create a new input in that form containing the id you wish to send and then submit the form.

Comments

0

We have to do two things to send a value to action class in struts2

  • send the required value with specific parameter name
  • create variable with the same name mentioned in jsp & create setter,getter methods for that variable.

in action class

public class AddToCart{
private String itemId;

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

this will work.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.