搭建基于springMVC的WEB开发框架·标准化交互数据协议
来源:互联网 发布:英雄联盟js 编辑:程序博客网 时间:2024/05/22 03:58
在一个WEB或者是后台服务项目里,对项目中所有的前后端数据交互定义一个统一的格式是非常必要的。无论是前端是Html还是各种手机APP,拥有了一套统一的交互标准后后端服务都能无缝对接前端。
在这里我们可以简单的定义一个数据交互格式:
import java.util.HashMap;import java.util.Map;public abstract class PAction {private Map<String,Object> getMap(){Map<String,Object> map = new HashMap<String,Object>();map.put("errMsg", "");map.put("state", "");map.put("data", "");return map;}protected Map<String,Object> returnTure(Object data){Map<String,Object> map = this.getMap();map.put("state","true");map.put("data",data);return map;}protected Map<String,Object> returnTure(){Map<String,Object> map = this.getMap();map.put("state","true");return map;}protected Map<String,Object> returnFalse(String msg){Map<String,Object> map = this.getMap();map.put("state","false");map.put("errMsg", msg);return map;}}
返回的数据格式为一个Map类型,包含了以下3个元素:
state--定义交互是否成功,true或者falsedata--要传递给前端实际的数据
errMsg--如果此次交互失败(即:state="false”),则将错误信息存放到该处。
下面我们基于springMVC编写一个实际的Controller
import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import com.pervcom.domain.Admin;import com.pervcom.sys.dao.LoginDao;@Controller@RequestMapping("/login.action")public class LoginAction extends PAction {@Autowiredprivate LoginDao loginDao;@RequestMapping(params = "operate=login")public @ResponseBody Object login(Admin param,HttpServletRequest request) {Admin admin = this.loginDao.adminInfo(param);if(admin!=null){HttpSession session = request.getSession(true);session.setAttribute("loginNo",admin.getLoginNo());session.setAttribute("adminInfo",admin);return this.returnTure();}elsereturn this.returnFalse("用户名或密码错误");}@RequestMapping(params = "operate=loginout")public String loginout(HttpServletRequest request) {HttpSession session = request.getSession(true);session.invalidate();return "redirect:/login.html";}}
在这个Controller里使用了注解@ResponseBody来将这个Map类型的数据格式转变成json格式传递给前端。这样也方便前端对数据进行解析。
当然,要让springMVC帮你把数据变成json还需要对springMVC进行配置:
<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 --><bean id="handleAdapter" class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"><property name="messageConverters"> <list> <ref bean="mappingStringHttpMessageConverter" /> <ref bean="mappingJacksonHttpMessageConverter" /><!-- json转换器 --> </list> </property></bean>
最后我们以html为例,看看在html里如何接收并处理数据:
<SCRIPT language=javascript type=text/javascript> function submit(){var loginNo = $("#loginNo").val();var password = $("#password").val();if(loginNo=="" || password==""){alert("请输入用户名或密码");return;}$.ajax({type:"post",url:"/mik0001.action?operate=login",data:"loginNo="+loginNo+"&password="+password,success:function(obj){if(obj.state=="true"){location.href="/mik0001.action?operate=index";}else{alrt(obj.errMsg);}} });}</SCRIPT>
阅读全文
1 0
- 搭建基于springMVC的WEB开发框架·标准化交互数据协议
- 基于springmvc+mybatis搭建的J2EE快速开发框架
- 基于springmvc mybatis junit搭建分工程,分模块的web工程框架(一)
- 基于springmvc mybatis junit搭建分工程,分模块的web工程框架(二)
- 基于springmvc mybatis junit搭建分工程,分模块的web工程框架(三)
- 后台基于SSH框架开发的Android应用的前后台数据交互
- 基于maven搭建ssm开发框架(1) SpringMVC和spring的整合
- 基于springMVC的JAVA WEB实例开发
- 开发基于springMVC的web应用
- 基于ssm框架的个人博客系统(11)--后台开发及前后端数据交互
- 基于.net平台的web框架搭建
- springMVC框架--json数据的交互(四)
- 基于Maven的SpringMVC+Mybatis+mysql的框架搭建
- 基于Maven的SSM框架的搭建(Spring+SpringMVC+MyBatis)
- c++与web交互socket该发送的协议数据
- 基于maven的springmvc +hibernate+ spring框架搭建
- 基于maven的spring+mybatis+springMVC框架搭建
- 搭建简单的SpringMVC框架(基于注解)
- 数据库书单
- linux下ioctl()函数使用的详细说明
- mysql 看 binlog如何恢复数据
- Web.xml配置详解之context-param
- 义隆单片机CALL 与JMP的区别
- 搭建基于springMVC的WEB开发框架·标准化交互数据协议
- 商城项目实战24:实现添加商品功能
- eclipse中的快捷方式
- intent用法总结
- nginx编译安装
- 线程池你需要了解哪些
- Java中Synchronized的用法
- UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)
- 【STM32F103攻城笔记】PWM功能实战