首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

Spring MVC中回到json的操作

2013-11-25 
Spring MVC中返回json的操作@RequestMapping(value /deleteListen,method RequestMethod.POST)@Resp

Spring MVC中返回json的操作
@RequestMapping(value = "/deleteListen",method = RequestMethod.POST)@ResponseBodypublic Map<String, String> deleteListen(HttpServletRequest request,String microblogid, String operatorType){User user = (User) request.getSession().getAttribute("user");String listenid = user.getMicroblogid();Map<String, String> map = new HashMap<String, String>();try{if("cancel".equals(operatorType)){// 取消操作// 从LISTEN表中删除listenService.deleteListen(listenid, microblogid);// 操作状态变为"立即收听"map.put("operatorState", "立即收听");// 收听状态变为""map.put("tuneState", "");}else{// 立即收听操作// 添加收听人到LISTEN表中listenService.save1Listen(listenid, microblogid);// 操作状态变为"取消"map.put("operatorState", "取消");// 被收听的人收听了当前用户if(listenService.isListen(microblogid, listenid)){// 收听状态变为"已互听"map.put("tuneState", "已互听");}else{// 收听状态变为"已收听"map.put("tuneState", "已收听");}}map.put("result", "success");}catch (Exception e) {map.put("result", "fail");}return map;}

?使用POJO类的代码如下:

?

@RequestMapping(value = "/deleteListen",method = RequestMethod.POST)@ResponseBodypublic Operator deleteListen(HttpServletRequest request,String microblogid, String operatorType){User user = (User) request.getSession().getAttribute("user");String listenid = user.getMicroblogid();Operator operator = new Operator();try{if("cancel".equals(operatorType)){// 取消操作// 从LISTEN表中删除listenService.deleteListen(listenid, microblogid);// 操作状态变为"立即收听"operator.setOperatorState("立即收听");// 收听状态变为""operator.setTuneState("");}else{// 立即收听操作// 添加收听人到LISTEN表中listenService.save1Listen(listenid, microblogid);// 操作状态变为"取消"operator.setOperatorState("取消");// 被收听的人收听了当前用户if(listenService.isListen(microblogid, listenid)){// 收听状态变为"已互听"operator.setTuneState("已互听");}else{// 收听状态变为"已收听"operator.setTuneState("已收听");}}operator.setResult("success");}catch (Exception e) {operator.setResult("fail");}return operator;}

?3、页面中ajax的调用方法如下:

?

function operator(obj, microblogid){var date = new Date();var operatorType = $(obj).text();if(operatorType == "取消"){operatorType = "cancel";}else{operatorType = "tune";}$.ajax({url: "<%=path%>/deleteListen",type : "post",dataType : "json",data : "microblogid=" + microblogid + "&operatorType=" + operatorType + "&date=" + date,success : function(result) {if(result.result == "success"){$(obj).text(result.operatorState);$(obj).parent().prev().find("a").text(result.tuneState);}else{alert("操作失败");}},error : function() {alert("访问失败");}});}

?页面部分的内容如下:

<c:forEach var="userandlisten" items="${tunelist}" varStatus="count">   <tr>    <td align="right"><a href="selectBroadcast?microblogid=${userandlisten.listenid }">${userandlisten.username}</a>&nbsp;&nbsp;</td>    <td align="right" width="80">${userandlisten.remark}&nbsp;</td>    <td align="left"><a href="remarkName?listenid=${userandlisten.listenid }" id="remark">${userandlisten.addremark}</a></td>    <td align="right"><a href="listenState?listenid=${userandlisten.listenid }">${userandlisten.describe}</a></td><td align="left">&nbsp;<a href="javascript:void(0);" onclick="operator(this, '${userandlisten.listenid }');">取消</a></td>  </tr></c:forEach>

?需要注意的是:

我并没有在spring的配置文件中加入类似下面的配置,之前在网上查找资料的时候好多人多说需要加上这个配置,但是我没加也是好用的:

<bean /></list></property></bean><bean id="mappingJacksonHttpMessageConverter" name="code"><bean id="viewResolver" ><property name="prefix" value="/WEB-INF/view/"></property><property name="suffix" value=".jsp"></property></bean>

?这样就OK啦。

?

?相关jar包也上传一下吧。

热点排行