这是我个人探究微信小程序前端与后端之间的数据交换的过程,再结合个人所学的SSH框架,

编程工具用myEclipse2014工具。当然,前提是后台的项目要部署到tomcat服务器上才行,

然后总结了从后台获取数据和从前端读取数据存放到数据库的两个过程,

大家可以参考、学习一下,看代码:

首先,在微信小程序的界面中,先设两个按钮:如下图所示:

代码如下:

<button bindtap='houduanButton1'>点击发起请求</button>
<view wx:for="{{list}}">
姓名:{{item}}
</view> <button bindtap='houduanButton2'>提交请求</button>

然后,在js文件中编写houduanButton1和houduanButton2这个按钮事件,代码如下:

Page({
data: {
list: ''
},
houduanButton1: function () {
var that = this;
wx.request({
//这个url是指在eclipse中com.international.action文件下的abroadCollegeAction类的方法getUser()
//类似于ajax的url调用action的方式
url: 'http://localhost:8080/Graduate/com/international/action/abroadCollegeAction!getUser',
method: 'post', //请求的的方式,有post和get两种方式
header: {
'content-type': 'application/json' // 把数据转换为json类型数据默认值
},
success: function (res) {
var list = res.data.list; //获取从eclipse中返回的map("list",list)数据
console.log(res.data)
if (list == null) {
var toastText = '数据获取失败';
wx.showToast({ //如果获取的数据是null,就会提示获取数据失败
title: toastText,
icon: 'success',
duration: 2000
});
} else {
that.setData({ //把获取到的值赋值给list
list: list
})
}
}
})
},
houduanButton2: function () { var that =this;
console.log("提交的list:" + that.data.list)//打印到控制台
wx.request({
//这个url是指在eclipse中com.international.action文件下的abroadCollegeAction类的方法getUser()
//类似于ajax的url调用action的方式
url: 'http://localhost:8080/Graduate/com/international/action/abroadCollegeAction!getUsers',
data: { listUser: that.data.list }, //传递数据给eclipse中com.international.action文件下的
//abroadCollegeAction类的数列listUser
method: 'post', //请求的的方式,有post和get两种方式
header:{
'content-type': 'application/x-www-form-urlencoded' //传数据给后台的时候是必加的,不然传递给后端的值为null
},
success: function(res){
var message = res.data;
wx.showToast({
title:'提交成功',
icon: 'success',
duration:2000
});
}
}) } });

然后回到eclipse中,在com.international.action文件下的abroadCollegeAction类中新建两个方法getUser()和getUsers(),这里并没有连接数据库,因为我本人觉得,如果可以获取到数据,

那么从数据库中提取数据就是很简单的事情了,所有就新建了一个list来存放数据,代码如下

package com.international.action;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext; import com.international.model.abroadCollege;
import com.international.model.internationalClass;
import com.international.service.abroadCollegeService;
import com.international.service.pagingService;
import com.international.service.studentService;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport; public class abroadCollegeAction extends ActionSupport { List<String> listUser; //测试微信小程序的list public List<String> getListUser() {
return listUser;
} public void setListUser(List<String> listUser) {
this.listUser = listUser;
} public void getUser() throws IOException{
System.out.println("微信小程序正在调用。。。");
Map<String, Object> map = new HashMap<String, Object>();
List<String> list = new ArrayList<String>();
list.add("zhangsan");
list.add("lisi");
list.add("wanger");
list.add("mazi");
map.put("list",list);
System.out.println("微信小程序调用完成。。。");
try {
ajaxAction.toJson(ServletActionContext.getResponse(),map);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} public void getUsers() throws IOException{
System.out.println("提交的数据是:"+listUser);
String message="提交成功";
ajaxAction.toJson(ServletActionContext.getResponse(),message);
} }

接下来,也就是最重要的一步,就是把list里的数据转换为json数据,微信小程序才能够获取到,否则微信小程序获取到的数据为空,代码如下:

我自己把转换为json数据的逻辑写成一个类,封装起来,方便调用,希望也能方便大家.

package com.international.action;

import java.io.IOException;
import java.io.PrintWriter; import javax.servlet.http.HttpServletResponse; import com.google.gson.Gson;
import com.international.model.internationalStudent; public class ajaxAction { public static void toJson(HttpServletResponse response, Object data)
throws IOException {
Gson gson = new Gson();
String result = gson.toJson(data);
response.setContentType("text/json; charset=utf-8");
response.setHeader("Cache-Control", "no-cache"); //取消浏览器缓存
PrintWriter out = response.getWriter();
out.print(result);
out.flush();
out.close();
} }

这就大功告成了,如果有不足之处,希望大家多包涵。

微信小程序前端与myeclipse的数据交换过程(SSH)的更多相关文章

  1. 微信小程序,前端大梦想(六)

    微信小程序,前端大梦想(六) 微信小程序之联合百度API实现定位 定位功能对于我们都不陌生,在移动端的应用中更是不可或缺的功能,小程序中也提供了对应的API帮助我们完成定位的实现,但是目前小程序的定位 ...

  2. 微信小程序添加外部地图服务数据

    先上效果: 缘起 使用微信小程序做地图相关功能的时候,有个需求是需要接入自己发布的地图服务.查看微信小程序地图组件文档,发现它对地图相关的支持很少,只有一些基础功能,比如添加点.线.面.气泡和一些常规 ...

  3. 微信小程序前端页面书写

    微信小程序前端页面书写 WXML(WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件.事件系统,可以构建出页面的结构. 一.数据绑定 1. 普通写法 <view ...

  4. 微信小程序前端样式WXSS书写

    微信小程序前端样式WXSS书写 一. WXSS的简单介绍 WXSS(WeiXin Style Sheets)是一套样式语言,用于描述 WXML 的组件样式. 与 CSS 相比,WXSS 扩展的特性有: ...

  5. 关于微信小程序前端Canvas组件教程

    关于微信小程序前端Canvas组件教程 微信小程序Canvas接口函数 ​ 上述为微信小程序Canvas的内部接口,通过熟练使用Canvas,即可画出较为美观的前端页面.下面是使用微信小程序画图的一些 ...

  6. 微信小程序前端源码逻辑和工作流

    看完微信小程序的前端代码真的让我热血沸腾啊,代码逻辑和设计一目了然,没有多余的东西,真的是大道至简. 废话不多说,直接分析前端代码.个人观点,难免有疏漏,仅供参考. 文件基本结构: 先看入口app.j ...

  7. 微信小程序,前端大梦想(二)

    微信小程序的视图与渲染  今天我们从四个方面来了解小程序:   •组件的基本使用  •数据绑定  •渲染标签  •模板的使用     一.组件的基本使用:  微信小程序为我们的开发提供了丰富的UI组件 ...

  8. 微信小程序前端开发踩坑(一)

    之前由于不了解微信小程序的整个的运行开发机制,走了很多的弯路,脑子灵光的可能不会遇到,这个主题系列的帖子希望可以帮助到像我一样理解能力慢的孩子. 不论是开发微信小程序还是说学习任何一门编程语言,最重要 ...

  9. 微信小程序,前端大梦想(一)

    小程序框架MINA简介       微信公众平台"小程序"具有不是APP胜似APP的效果,是一种不需要下载安装即可使用的应用,它实现了应用"触手可及"的梦想,用 ...

随机推荐

  1. 学Python的你必须要知道,这十个Python常用库

    想知道Python取得如此巨大成功的原因吗?只要看看Python提供的大量库就知道了 包括原生库和第三方库. 不过,有这么多Python库,有些库得不到应有的关注也就不足为奇了. 此外,只在一个领域里 ...

  2. 编程语言千千万,为什么学习Python的占一半?

    如果让你从数百种的编程语言中选择一个入门语言?你会选择哪一个? 是应用率最高.长期霸占排行榜的常青藤 Java?是易于上手,难以精通的 C?还是在游戏和工具领域仍占主流地位的 C++?亦或是占据 Wi ...

  3. php sprintf() 函数把格式化的字符串写入一个变量中。

    来源:https://blog.csdn.net/zxh1220/article/details/79709207 HP sprintf() 函数用到的参数 printf — 输出格式化字符串 spr ...

  4. linux 批量删除文件

    来源;https://www.cnblogs.com/sinpo/p/7106998.html linux下批量删除文件   1. 在linux批量删除多级目录下同一格式的文件,可采用find + e ...

  5. PHP实现MySQL并发查询

    一般的,一个看似很简单的页面,一次http请求后,到达服务端,穿过Cache层,落到后台后,实际可能会有很多很多的数据查询逻辑!而这些查询实际是不相互依赖的,也即可以同时查询.比如各种用户信息,用户的 ...

  6. 一,连接Oracle 一

    连接Oracle数据库方法: 一,使用sqlplus连接 二,使用第三方软件连接 sqlplus sqlplus 工具简介 (1).概述:sqlplus是在Linux下操作oracle的工具 (2). ...

  7. 搭建phpMyAdmin

    MySQL常见的管理工具 今天选择的phpMyAdmin 一款基于浏览器管理数据库的工具. 下载可以去官网下载https://files.phpmyadmin.net/phpMyAdmin/4.7.5 ...

  8. qt 怎么让程序自带字体,就是说在操作系统上没有的字体

    字体要加到.qrc文件中 QString Widget::loadFontFamilyFromTTF() { static QString font; static bool loaded = fal ...

  9. 【Django】runserver 0.0.0.0:0 后,究竟发生了什么

    WSGI协议 Django是遵循WSGI协议设计的 WSGI协议主要包括server和application两个部分: WSGI server:负责从客户端接收请求,将request转发给applic ...

  10. opencv-10-图像滤波-噪声添加与均值滤波-含opencv C++ 代码实现

    开始之前 再说上一篇文章中, 我们想按照噪声产生, 然后将降噪的, 但是限于篇幅, 我就放在这一篇里面了, 说起图像的噪声问题就又回到了我们上一章的内容, 把噪声当作信号处理, 实际上数字图像处理实际 ...