为什么在收到ActionMessage时我的表的值被删除了?

时间:2013-05-24 07:21:08

标签: java javascript jquery jsp struts2

在我的应用程序中,用户需要能够将产品添加到他们的购物篮中。我有一个页面显示产品的描述,一旦用户点击Add按钮,它应该被添加到他的购物篮中,如果一切顺利,它会显示确认消息,否则会显示错误消息。

问题在于,我的应用程序正确显示了消息,但是当消息显示时,产品描述已被删除。

<table>
     <tbody>
        <tr><td>ID:${product.ID}</td></tr>
        <tr><td>Name:${product.name}</td></tr>
        <tr><td>Price:${product.price}</td></tr>
         ......

         <s:if test="hasActionMessages()">
             <s:actionmessage/>
         </s:if>

         <s:form method="GET" action="add">
             <input type="hidden" name="productID" value="${prodcut.ID}"/>
         <s:submit value="Add"></s:submit>
     </tbody>
</table>

结果:

ID: 123
Name: Product1
Price: $12.2

ADD

点击Add按钮并将产品添加到购物篮

ID:
Name:
Price:
      Product is successfully added                 
ADD

我知道我可以使用Ajax和JavaScript,但是如何显示服务器消息?

1 个答案:

答案 0 :(得分:1)

问题在于您的JSP,因为您显示的请求中的产品详细信息与您添加产品时使用的不同。篮子是一种对象,您应该在会话中保留并清除产品的处理时间。但在清理之前,您应该将包含从购物篮中复制的产品详细信息的消息添加到请求并转发到JSP。如果重定向到其他操作或JSP,则请求属性将丢失。在这种情况下,如果您真的需要重定向更好,请将详细信息放入会话中。但它不应该是一个篮子对象。