《前端和后台接口理解》由会员分享,可在线阅读,更多相关《前端和后台接口理解(4页珍藏版)》请在金锄头文库上搜索。
1、J2EE 下传递数据的方式1. 采用 JSON 数据交换 后台传到前台(用到了 SpringMVC 框架)如果采用 JSON 形式来传送数据,一个办法就是利用 AJAX 和 JS/JQUERY 的方法去传递。可以把请求的数据封装到 data 里面,请求转接到另外一个地方的时候,我们就可以对请求的数据操作了。比如: 前台请求 SQL 数据到页面进行展示页面加载,响应事件$(function()var GetGroupsAndCars = function() $.ajax(url:/webcar/GetGroups,type:get,dataType:json,success:function(
2、data) groupStore = data.carGroupList;userGroupId = data.groupId;,error:function() showalert(获取信息失败);););对应的请求到了:RequestMapping( /GetGroups )ResponseBodypublic GroupsAndCarsResult getGroupsAndCars(HttpServletRequest request) throws Exceptionint groupId = PreHandle.userGroup(request);List carGroupList
3、 = this.carInforService.getCarGroupsWithGroupId(groupId);GroupsAndCarsResult result = new GroupsAndCarsResult();result.setCarGroupList(carGroupList);result.setGroupId(groupId);return result;返回的结果明显是 GroupsAndCarsResultde 类对象数据,里面包含有成员数据private List carGroupList;private int groupId;通过 SpringMVC 的Resp
4、onseBody 功能可以直接把类对象打包成 JSON 数据。JS 部门指定 datatype 就可以直接解析好封装的 JSON 数据附注:像下面的这个帖子中,就是省去了 datatype 这个参数,所以需要 eval()去解析下http:/www.open- SQL 和上面的一样的道理,只不过是数据过程是逆过来而已。2. EL 表达式来传递数据(前台传到后台)E L(Expression Language) 目的:为了使 JSP 写起来更加简单。表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP Scriptlet 中简化表达式的方法。EL 存取变量
5、数据的方法很简单,例如:$username。它的意思是取出某一范围中名称为username 的变量。因为我们并没有指定哪一个范围的 username,所以它的默认值会先从Page 范围找,假如找不到,再依序到 Request、Session、Application 范围。假如途中找到 username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null,当然 EL 表达式还会做出优化,页面上显示空白,而不是打印输出 NULL。属性范围(jstl 名称) EL 中的名称Page PageScopeRequest RequestScopeSession SessionSco
6、peApplication ApplicationScope我们也可以指定要取出哪一个范围的变量:范例 说明$pageScope.username 取出 Page 范围的 username 变量$requestScope.username 取出 Request 范围的 username 变量$sessionScope.username 取出 Session 范围的 username 变量$applicationScope.username 取出 Application 范围的 username 变量其中,pageScope、requestScope、sessionScope 和 applica
7、tionScope 都是 EL 的隐含对象,由它们的名称可以很容易猜出它们所代表的意思,例如:$sessionScope.username是取出 Session 范围的 username 变量。这种写法是不是比之前 JSP 的写法:String username = (String) session.getAttribute(username);容易、简洁许多.参考:http:/ 表达式的用法:某些场合下,可以选择前台 el 表达式显示数据例如:可以把对象,put 入获取的 Map 对象中,传到对应的视图:RequestMapping(value = login, method = Reque
8、stMethod.POST)public String testParam(User user, Map model) model.put(user,user);return view;在返回的 view.jsp 中,就可以根据 key 来获取 user 的值(通过 EL 表达式,$user 即可);个人理解是:EL 表达式适合需要传递的参数数据小的情况下;如果需要传递的数据比较多,ajax 比较好。另外一种简单的方式:要想获得前台的数据,直接 getParameters()。都可以获得前台传来的参数。注明: EL 表达式就是获得前台数据传到后台(JSP Scriptlet ) 。JSP 也可以用 outStream 流之类的东西进行传数据(后台传到前台) ;不同的框架都可以用 JSON 传递数据,只是某些具体操作和配置上有些不同而已。