这是我个人探究微信小程序前端与后端之间的数据交换的过程,再结合个人所学的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. 在c++中引用c头文件里的函数

    在c++中有的时候想要引用c头文件里的函数有两种方法;就拿c语言里面的<stdlib.h>举例 在c中我们想要用<stdlib.h>里的函数,形式为:#include<s ...

  2. 解决Lost connection to MySQL server during query错误方法/Mysql关闭严格模式

    使用Navicat 导入MySQL数据库的时候,出现了一个严重的错误,Lost connection to MySQL server during query,字面意思就是在查询过程中丢失连接到MyS ...

  3. 2019-2020-1 20199325《Linux内核原理与分析》第五周作业

    第五周作业主要是选择一个系统调用(13号系统调用time除外),使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用,在实验楼Linux虚拟机环境下完成实验. 系统调用的列表参见 http ...

  4. Apache Commons Lang &#187; 3.10使用简介

    ============================================================= 行文介绍: 1.诞生背景 2.引入方案 3.简单介绍 4 .详情介绍 文档: ...

  5. 【Linux网络基础】TCP/IP 协议簇(各个常见协议介绍)

    一.应用层协议 1. FTP   协议所在层次:应用层协议 名称:FTP协议 协议端口:20,21 协议说明: FTP(File Transfer Protocol,文件传输协议)是TCP/IP协议组 ...

  6. 3.PEP 8是什么?

    PEP 8是什么? PEP 8 is a coding convention, a set of recommendation, about how to write your Python code ...

  7. 已有项目接入git远程仓库

    1.项目根目录初始化git仓库 git init 2.将本地项目与远程仓库关联(首先得在远程创建一个代码仓库) git remote add origin 远程仓库地址 诺,仓库地址就是这个玩意 3. ...

  8. ip地址与运算 ipcalc命令

    http://man.linuxde.net/ipcalc 转载于:https://blog.51cto.com/sonlich/2064133

  9. keep-alive的深入理解与使用(配合router-view缓存整个路由页面)

    原文链接: 点我 在搭建 vue 项目时,有某些组件没必要多次渲染,所以需要将组件在内存中进行‘持久化’,此时 <keep-alive> 便可以派上用场了. <keep-alive& ...

  10. socket编程之时间回射服务器

    使用到的函数: // 返回值:读到的字节数,若已到文件尾,返回0:若出错,返回-1 ssize_t read(int fd, void *buf, size_t nbytes); // 返回值:若成功 ...