當我沒有使用Ajax時,那麼一切都很好,並使用相同的代碼。但是在這裏使用ajax對於同一個公共字符串得到了null值。String execute()throws Exception {String strAction = cartItemForm.getAction();/*我在這裏使用ajax調用geting null,但簡單stuts2獲取行動值,我在<s:hidden name="action" value="Add" id="action" />
它意味着獲得添加* /返回「成功」; }如何使用Ajax和Struts2將表單數據發送到ActionSupport
這是JSP
<script type="text/javascript">
function submitAjax()
{
JSONobj = {cartItem:{
description : $("description").val(),
price :$("price").val(),
action : $("action").val(),
quantity :$("quantity").val(),
} };
JSONstr = JSON.stringify(JSONobj);
jQuery.ajax(
{
type: 'POST',
url: 'Cart.action',
data:JSONstr,
dataType: 'json',
async: false ,
contentType: 'application/json; charset=utf-8',
success: function(){window.alert("done");}
});
}
</script>
<s:form>
<s:hidden name="modelNo" value="%{#attr.productId}" />
<s:hidden name="description" value="%{#attr.productName}" id="description" />
<s:hidden name="price" value="%{#attr.listprice}" id="price" />
<s:hidden name="action" value="Add" id="action" />
<s:submit value="add to cart" cssClass="submit_button" theme="simple" />
</s:form>
這是struts.xml的
<action name="Cart" class="struts.cart.action.CartAction">
<result type="json"/>
</action>
這裏是我的Action類
public class CartAction extends ActionSupport
implements ModelDriven, Preparable, ServletRequestAware {
private static final long serialVersionUID = -3670063011948002290L;
public static final String ADD = "Add";
public static final String DELETE = "Delete";
public static final String UPDATE = "Update";
public static final String CART_SESSION = "Cart";
private HttpServletRequest request;
private CartItemForm cartItemForm;
public String execute() throws Exception {
String strAction = cartItemForm.getAction();//i am geting null here
return "success";
}
public Object getModel() {
// TODO Auto-generated method stub
System.out.println("Cart getModel "+cartItemForm);
return cartItemForm;
}
public void prepare() throws Exception {
// TODO Auto-generated method stub
System.out.println("Cart prepare "+cartItemForm);
cartItemForm=new CartItemForm();
}
public void setServletRequest(HttpServletRequest httpServletRequest) {
// TODO Auto-generated method stub
request = httpServletRequest;
}
}
考慮修復您的方法模板,或者至少刪除無用的註釋。 – 2013-02-22 12:25:45