这是我个人探究微信小程序前端与后端之间的数据交换的过程,再结合个人所学的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. 2019-2020-1 20199308《Linux内核原理与分析》第三周作业

    <Linux内核分析> 第二章 操作系统是如何工作的 2.1 函数调用堆栈 3个关键性的方法机制(3个法宝) 存储程序计算机 函数调用堆栈机制 中断 堆栈相关的寄存器 ESP:堆栈指针(s ...

  2. How to permit SSH root Login in Ubuntu 18.04

    https://www.ubuntu18.com/ssh-permitrootlogin/ SSH root login is disabled by default in Ubuntu 18.04. ...

  3. 企业级 Harbor 镜像仓库

    Harbor是由VMWare公司开源的容器镜像仓库.事实上,Harbor是在Docker Registry上进行了相应 的企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理用户界面,基 ...

  4. java 8 lambda表达式中的异常处理

    目录 简介 处理Unchecked Exception 处理checked Exception 总结 java 8 lambda表达式中的异常处理 简介 java 8中引入了lambda表达式,lam ...

  5. 新版gitbook导出pdf

    文章目录 gitbook自带的npm模块gitbook 使用vscode的插件Markdown PDF 使用CommandBox GitBook Exporter 最近想把自己写的一个gitbook转 ...

  6. Linux Centos7(Mac)安装Docker

    docker 强调隔离性 docker:官网 docker:镜像官网:        镜像官网可以所有应用,选择安装环境:会给出安装命令,例如:docker pull redis 默认拉取最新的版本( ...

  7. Ubuntu+FastDFS+Nginx

    一.安装libfastcommon 1.wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz 2.tar - ...

  8. Redis(一):数据结构与对象

    前言 本书是Redis设计与实现的读书笔记,旨在对Redis底层的数据结构及实现有一定了解.本书所有的代码基于Redis 3.0. 简单动态字符串 SDS Redis没有直接使用C语言中的字符串,而是 ...

  9. CCF系列奖获奖名单公布,鲍虎军、周志华获CCF王选奖 | CNCC 2017

    本文讲的是CCF系列奖获奖名单公布,鲍虎军.周志华获CCF王选奖 | CNCC 2017, 由中国计算机学会(CCF)主办,福州市人民政府.福州大学承办,福建师范大学.福建工程学院协办的2017中国计 ...

  10. 使nfs同步生效

    我们在使用nfs的时候会遇到往nfs server端写个文件,client需要很久才能生效,我们想让立刻生效有两种办法:1.mount -t nfs -o noac IP:/data/xxxx /xx ...