最近在做一个购物车的小功能,找了一个项目进行改造。发现我的项目在获取strus返回的json对象时,取不到值,找了一整天都想不出个所以然。
我的项目json返回显示如下:
网上找的项目返回显示如下(正确显示):
这是jsp页面的jquery代码:
<script type="text/javascript">
$(function(){
$(".buy").click(function(){
var t = this;
var id = $(this).prev().val();
$.post(
"${pageContext.request.contextPath }/cart/cartAction!doBuy",
{"cid":id},
function(date){
if (date.ok) {
$(t).html("<img src='${pageContext.request.contextPath }/myimages/right.gif'/>"+
"成功添加到购物车!");
} else {
$(t).html("您已经购买过该商品");
}
return;
}
);
});
});
</script>
<td class="altbg2">
<input type="hidden" value=${dishesId } id="cid"/>
<a class="buy">购买</a>
<span id="cartinfo"></span>
</td>
action代码:
/**
* 购买商品
* @return
*/
public String doBuy(){
try {
//获取session中的购物车
cartService = (CartService) sessionMap.get(ConfigUtil.CART_KEY);
if (cartService == null) {
cartService = new CartServiceImpl();
sessionMap.put(ConfigUtil.CART_KEY, cartService);
}
ok = cartService.add(cid);
} catch (Exception e) {
e.printStackTrace();
LogInfoUtil.logError("doBuy", e);
return "error";
}
return "buy_success";
}
/**
* 获取购物车清单
* @return
*/
public String cartList(){
try {
cart = (ICartService) sessionMap.get(Constant.CART_KEY);
if (cart==null) {
cart = new CartServiceImpl();
sessionMap.put(Constant.CART_KEY, cart);
}
buyList = cart.getBuyList();//购买列表
deleteList = cart.getDeleteList();//删除列表
if (buyList.size()==0&&deleteList.size()==0) {
cart.load(CookieUtil.findCookie(Constant.CART_KEY, request));
}
CookieUtil.addCookie(Constant.CART_KEY, cart.store(), response);
String[] cost = cart.cost().split("-");
saveCost = Double.parseDouble(cost[0]);
totalCost = Double.parseDouble(cost[1]);
} catch (Exception e) {
e.printStackTrace();
return "error";
}
return "cart_list";
}
<!-- 购物车 --> <package name="cart" extends="json-default" namespace="/cart"> <action name="cartAction" class="com.lwj.sys.action.CartAction"> <result name="cart_list"> /customer/cart_list.jsp </result> <result name="buy_success" type="json"> </result>
第一次点击“购买”时,buyList为null,但再次点击时,因为已经购买过了,应该会正常显示,又返回数据。但第二次点击时,也是为null。
action中没问题,相关的字段都是有值的,就是json这里返回的对象为空。
没有报错。。
实在是想不到了,才来问问大家有没有什么意见,不知道是不是漏了些什么,没学过json,都是弄这个小功能的时候看了一下struts整合json的。可能会有些知识漏掉
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
用org.json或json-lib构造一下试试。使用struts的json的话,你需要给set、get方法,因为json的话是通过get方法获取的,或者你使用第三方的json包get都有的
$.post('url',
{id:id},
function(){
},'<spanstyle="background-color:#E56600;">json');返回类型没有加,识别不到是json数据
也不行啊。。自顶,求解答,要疯了