Win a copy of Java 9 Modularity: Patterns and Practices for Developing Maintainable Applications this week in the Java 9 forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

Cant Access contents of form in forms Action class...  RSS feed

Pras Tiwari
Ranch Hand
Posts: 186
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi all,

This is some part my Part of Struts-config.xml
<form-bean name="viewcartForm" type="com.pal.struts.form.ViewcartForm" />

<forward name="viewc" path="/jsp/ViewCart.jsp"></forward>

attribute="viewcartForm" name="viewcartForm" path="/updatecart"
<forward name="success" path="/" />


Now in my web application there is page "viewcart.jsp" which displays all parts in cart. as follows:-
<html:form action="updatecart" method="post">
<table border="0" cellpadding="0" width="100%" bgcolor="#71B8FF"
bordercolor="#000000" cellspacing="1">
<td class=aheader align=center>Part No.</td>
<td class=aheader align=center>Description</td>
<td class=aheader align=center>Qty</td>
<td class=aheader align=right>Unit-Price($)</td>
<td class=aheader align=right>Sub-Total($)</td>
<td class=aheader align=center> <html:image src="../images/RFQ.gif" value="Move To Enquiry Cart" property="rfqbtn"

alt='Move To RFQ Cart'/></td>
<td class=aheader align=center> <html:image src="../images/Del_Parts.gif" value="Delete from Cart" property="delbtn"

alt='Delete from Cart'/></td></tr>
<logic:iterate name="viewcartForm" property="cartdata"id="partsincart">
<bean efine id="units" name="partsincart" property="qty" type="java.lang.Double" />
<bean efine id="unitprice" name="partsincart" property="unit_price" type="java.lang.Double" />

<%Double sub_ttl;%>
<td class=cartevenrow><bean:writename="partsincart" property="partid" /></td>
<td class=cartevenrow><bean:writename="partsincart" property="partdesc" /></td>
<td class=cartevenrow><bean:writename="partsincart" property="qty" /></td>
<td class=cartevenrow><bean:writename="partsincart" property="rfqpart" /></td>
<td class=cartevenrow><%=((Double) pageContext.getAttribute("units")).doubleValue() * ((Double)

pageContext.getAttribute("unitprice")).doubleValue() %></td>
<td class=cartevenrow><logic:equal name="partsincart" property="rfqpart" value="true">
<html:checkbox name="partsincart" property="checkedforrfq" /></logic:equal></td>
<td class=cartevenrow><html:checkbox name="partsincart" property="checkedfordel" /></td>

& My (formbean) is as follows:-

public class ViewcartForm extends ActionForm {

private CartSessionData[] cartdata=new CartSessionData[0];
//CartSessionData is my ValueObject Class
private CartSessionData cartdata1=new CartSessionData();

private String rfqbtn;

private String delbtn;

public CartSessionData[] getCartdata() {

return cartdata;


public void setCartdata(CartSessionData[] cartdata) {

this.cartdata = cartdata;


public String getDelbtn() {

return delbtn;


public void setDelbtn(String delbtn) {

this.delbtn = delbtn;


public String getRfqbtn() {

return rfqbtn;


public void setRfqbtn(String rfqbtn) {

this.rfqbtn = rfqbtn;


& on Clicking on Submit Buttons I am calling action "updatecart.
Now in I am not able to aceess contents of my ViewcartForm to which I want to process in
Some code of my is as follows:-
public ActionForward execute(

ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {

HttpSession session=request.getSession();

ViewcartForm viewcartForm = (ViewcartForm) form;

System.out.println("Size of Carts Items========="+ viewcartForm.getCartdata().length);


System.out.println("UserID is:--"+userid);

Now in above code of on the line no. 5 ie.,
System.out.println("Size of Carts Items========="+ viewcartForm.getCartdata().length);

It is giving me length of CartData as '0' though at present there are 3 items in my ViewCartForm that I can View in my

ViewCart.jsp Page.
I think here the values in the formbean are not getting transferredf from ViewCart.jsp to UpdateCartAction.
Where I am wrong? As I acnt access to any content of my formbean on updatecartaction I am not able to manipulate it at all in

my updatecartaction.
Please tell me what shoul I do so that I can Access the contents of "ViewCartForm" in UpdatecartAction ?

Thanx in advance.
Jeanne Boyarsky
author & internet detective
Posts: 37381
Eclipse IDE Java VI Editor
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
In the struts config file, you have the form scope set to action. This means the values will be wiped out between page submissions. If you want the view and update pages to share a form bean, set the scope to session.
Pras Tiwari
Ranch Hand
Posts: 186
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanx for ur reply,
But in my application I am submitting my viewcartForm to "updatecart" action. So all the values of form fields should be available in "updatecartAction". Also If I am using ur suggestion in my application (setting scope of form to session) then I am not able to view checkbox status in my action form. For all the checkboxes those I have checked in my viewcartForm in "viewcart.jsp" corresonding to each part I am getting its value as "false". I think this happening because "updatecartaction" trying to access the original form bean for which the scope is set to session. & it is not referring my form in Viewcart.jsp after I am checking some checkboxes. So what should I do here to get values oin my action(updatecartaction)??

Pls reply.
Brent Sterling
Ranch Hand
Posts: 948
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
With session request your form goes away when the first page is displayed. When the page is submitted Struts will create a brand new, empty instance of your form. That new instance will be populated with values that were submitted with the page. In your case, I do not see many form fields that will be submitted. The checkbox values will, but stuff shown on the page from bean:write will not.

If you want to completely recreate the shopping cart, you need to store all its values on the jsp in hidden fields. This seems like a messy solution. Another option is to use session scope. Another option might be to store the shopping cart in a database table and retrieve the values from the database.

- Brent
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!