这是我个人探究微信小程序前端与后端之间的数据交换的过程,再结合个人所学的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. sqli lab 1-4

    less-1 爆库 id=1222' union select 1,group_concat(schema_name),database() from information_schema.schem ...

  2. php内置函数call_user_func()

    <?php //call_user_func(callback,name,age) //第一个参数callback作为回掉函数使用,其余的参数是他的参数 function now($a,$b) ...

  3. 自定义spring boot的自动配置

    文章目录 添加Maven依赖 创建自定义 Auto-Configuration 添加Class Conditions 添加 bean Conditions Property Conditions Re ...

  4. HDU 5954 Do Not Pour Out

    #include<bits/stdc++.h> using namespace std; #define rep(i,a,b) for(int i=a;i<=b;++i) #defi ...

  5. Qt之QListWidget:项目的多选与单选设置

    2019独角兽企业重金招聘Python工程师标准>>> #include "widget.h" #include <QApplication> #in ...

  6. 澳大利亚公共服务部门神速完成Win10部署:4个月完成44000台设备升级

    不到一年时间,澳大利亚公共服务部门已经完成Win10系统部署升级,涉及到全部的35000名员工.在2015年,澳大利亚公共服务部门IT员工告知微软,需要更创新的方式远程为居民提供服务,并且效率要更快. ...

  7. Java 线程池(ThreadPoolExecutor)原理分析与实际运用

    在我们的开发中"池"的概念并不罕见,有数据库连接池.线程池.对象池.常量池等等.下面我们主要针对线程池来一步一步揭开线程池的面纱. 有关java线程技术文章还可以推荐阅读:< ...

  8. Jmeter简单压测之服务器监控

    此篇为最近工作需要到内容,故现在做一个总结. 最近家里电脑坏了,等待会公司空闲在编写. 文章构思中,敬请期待.......

  9. 应用开发实践之关系型数据库(以MySql为例)小结

    本文主要是对目前工作中使用到的DB相关知识点的总结,应用开发了解到以下深度基本足以应对日常需求,再深入下去更偏向于DB本身的理论.调优和运维实践. 不在本文重点关注讨论的内容(可能会提到一些): 具体 ...

  10. Android APK 重签名

    对APK 进行在线 加固后,Apk体积一般会变大,而且Apk会无法直接安装,因为缺少了你的签名.是的,你需要对这个Apk进行重签名. 如何重签名 重签名的方法,一般来说,有两种,第一种是用JDK自带的 ...