Ajax原生方法:
dataType:'json' 设置返回值类型
contentType:"application/x-www-form-urlencoded"(默认值)
contentType参考文章:
页面采用回调函数function(data) 处理后台返回的结果
a标签onclick事件触发
加入秒杀
前台
function addproduct(id){ var mprice=document.getElementById("mprice_"+id).value; var number=document.getElementById("number_"+id).value; var sid=document.getElementById("special.id").value; if (mprice==""){ alert("请输入特价价格"); return false; }else if (number==""){ alert("请输入特价数量 "); return false; }else { //重点在这儿 $.get("${ctx}/special/addProduct.action?specialVo.quantity="+number+"&specialVo.memberPrice="+mprice+"&specialVo.id="+id+"&special.id="+sid, function(data){ if(data=="true"){ alert("添加成功"); window.location.reload(); } }) /* window.location.href="${ctx}/special/addProduct.action?specialVo.quantity="+number+"&specialVo.memberPrice="+mprice+"&specialVo.id="+id+"&special.id="+sid; */ } }
后台
public void addProduct(){ PrintWriter out=null; try { System.out.println(specialVo.getQuantity()); System.out.println(specialVo.getMemberPrice()); System.out.println(specialVo.getId()); System.out.println(special.getId()); HttpServletResponse response=ServletActionContext.getResponse(); out=response.getWriter(); out.print(true); out.flush(); out.close(); } catch (Exception e) { e.printStackTrace(); out.flush(); out.close(); out.println(0); } }
struts配置action无需result
<action name="addProduct" class="specialAction" method="addProduct" > </action>
方法有两种,一是返回无类型,即void类型,二是返回Action.NONE(String类型)当是这两种类型的时候,struts2就不会对result进行主动处理了
即我们只需要在action方法中,处理ajax调用,而返回void或者"none"就行了
参考文章: