java微信公众号小程序商城源码ssm_微信小程序以ssm做后台开发的实现示例

本文介绍了如何使用Java SSM框架开发微信小程序的后台。通过示例代码展示了从前端到后端的数据交互,包括微信小程序的前端界面、样式、JS逻辑以及SSM后端的处理方法。重点在于理解小程序与SSM后台的交互过程。
摘要由CSDN通过智能技术生成

微信小程序任何的语言都可以做后台,现在微信小程序推出云函数,做后台也可以。但是自己感觉想要完整的后台,做后台用java和php更好点。下面以典型的例证给大家做一下讲解,注册。

1、wmxl

微信小程序的前段代码(提交数据主要以from表单实现的)

请完善注册信息

姓名

性别

{{industryarr[industryindex]}}

账号

登录密码

邮箱

注册vip

{{statusarr[statusindex]}}

提交

置空

2、wxss

/**app.wxss**/

/**app.wxss**/

page{

height: 100%;

color: #333;

display: flex;

flex-direction: column;

font: normal 30rpx/1.68 -apple-system-font, 'Helvetica Neue', Helvetica, 'Microsoft YaHei', sans-serif;

}

.container {

flex: 1;

display: flex;

flex-direction: column;

box-sizing: border-box;

}

.container-body{

flex: 1;

overflow-y: auto;

overflow-x: hidden;

}

.container-footer{

width: 100%;

display: flex;

height: 88rpx;

border-top: 1rpx solid #ddd;

background: #fff;

}

.container-footer text{

flex: 1;

display: block;

text-align: center;

height: 88rpx;

line-height: 88rpx;

font-size: 34rpx;

border-left: 1rpx solid #ddd;

}

.container-footer text:first-child{

border-left: none;

}

.container-footer .btn-block{

border-radius: 0;

}

.container-footer .btn-block:after{

border: none;

}

.container-gray{

background: #f9f9f9;

}

input{

height: 60rpx;

line-height: 60rpx;

font-family: inherit;

}

.input-list{

padding: 0 20rpx;

margin: 20rpx 0;

background: #fff;

border-top: 1rpx solid #ddd;

border-bottom: 1rpx solid #ddd;

}

.input-list .input-item{

padding: 20rpx;

line-height: 2;

display: flex;

font-size: 30rpx;

border-top: 1rpx solid #e8e8e8;

}

.input-list .input-item:first-child{

border-top: 0;

}

.input-item-label{

display: block;

width: 5em;

color: #666;

}

.input-item-content{

color: #333;

flex:1;

}

.input-item.input-item-full{

display: block;

}

.input-item.input-item-full .input-item-label{

width: 100%;

}

.input-item.input-item-full .input-item-content{

width: 100%;

}

.input-item.input-item-full textarea{

padding: 0;

height: 150rpx;

border: 1rpx solid #e8e8e8;

padding: 10rpx;

}

.input-item.input-item-full .img-upload{

padding: 0;

}

.input-item.input-item-adaption .input-item-label{

width: auto;

margin-right: 20rpx;

}

button{

font-size: 32rpx;

line-height: 72rpx;

}

textarea{

width: 100%;

padding: 20rpx;

box-sizing: border-box;

}

radio-group radio{

position:absolute;

left: -999em;

}

radio-group label{

margin-right: 16rpx;

}

radio-group label:before{

content: '';

display: inline-block;

width: 40rpx;

height: 40rpx;

vertical-align: -8rpx;

margin-right: 4rpx;

}

.btn-submit{

padding: 20rpx;

}

.btn-block{

width: 100%;

line-height: 88rpx;

}

.btn-orange{

background: #f7982a;

color: #fff;

}

.btn-gray{

background: #e8e8e8;

color: #333;

}

.search-flex{

display: flex;

padding: 20rpx;

border-bottom: 1rpx solid #ddd;

position: relative;

z-index: 13;

background: #f9f9f9;

/* transform: translateY(-100%); */

margin-top: 0;

transition: all 0.3s;

}

.search-flex.tophide{

margin-top: -117rpx;

}

.search-flex button{

background: #f7982a;

color: #fff;

line-height: 72rpx;

height: 72rpx;

font-size: 30rpx;

border-radius: 6rpx;

}

.search-bar{

flex: 1;

display: flex;

border: 1rpx solid #e8e8e8;

border-radius: 6rpx;

}

.search-bar input{

flex: 1;

height: 72rpx;

line-height: 72rpx;

padding: 0 10rpx;

background: #fff;

}

.search-extra-btn{

margin-left: 20rpx;

white-space: nowrap;

}

.filter-tab{

display: flex;

width: 100%;

line-height: 80rpx;

border-bottom: 1rpx solid #ddd;

position: relative;

z-index: 2;

background: #fff;

}

.filter-tab text{

flex: 1;

text-align: center;

}

.filter-tab text:after{

content: '';

display: inline-block;

vertical-align: 4rpx;

width: 0;

height: 0;

border-left: 12rpx solid transparent;

border-right: 12rpx solid transparent;

border-top: 12rpx solid #bbb;

margin-left: 8rpx;

}

.filter-tab text.active{

color: #f7982a;

}

.filter-tab:not(.sort-tab) text.active:after{

border-top: 0;

border-bottom: 12rpx solid #f7982a;

}

.filter-tab.sort-tab text.active:after{

border-top: 12rpx solid #f7982a;

}

.filter-panel{

display: flex;

background: #f5f5f5;

position: absolute;

width: 100%;

z-index: 13;

overflow: hidden;

}

.filter-panel-left,.filter-panel-right{

flex: 1;

line-height: 80rpx;

text-align: center;

max-height: 480rpx;

overflow-y: auto;

}

.filter-panel-left .active{

background: #fff;

}

.filter-panel-right .active{

color: #f7982a;

}

.filter-panel-right{

background: #fff;

}

.filter-panel-right:empty{

display: none;

}

.filter-shadow{

position: absolute;

width: 100%;

top: 0;

bottom: 0;

z-index: 1;

background: rgba(0,0,0,.5);

}

.gototop{

width: 70rpx;

height: 70rpx;

position: fixed;

bottom: 20rpx;

right: 20rpx;

transition: all 0.3s;

opacity: 0;

transform: translateY(200rpx);

}

.gototop.active{

opacity: 1;

transform: translateY(0);

}

.group{

display: block;

width: 100%;

}

.group-header{

line-height: 70rpx;

display: flex;

padding: 0 20rpx;

background: #f9f9f9;

}

.group-body{

background: #fff;

border-top: 1rpx solid #ddd;

border-bottom: 1rpx solid #ddd;

}

.group-body .input-list{

margin: 0;

border: none;

}

.img-upload{

padding: 20rpx;

font-size: 0;

overflow: hidden;

}

.img-upload .img-item,

.img-upload .img-add{

width: 100rpx;

height: 100rpx;

float: left;

margin: 10rpx;

border: 1rpx solid transparent;

}

.img-upload .img-add{

border: 1rpx dashed #ddd;

}

.img-upload .img-item image{

width: 100rpx;

height: 100rpx;

}

.img-upload .img-item{

position: relative;

}

.img-upload .img-item icon{

position: absolute;

right: -12rpx;

top: -12rpx;

}

.container {

height: 100%;

display: flex;

flex-direction: column;

align-items: center;

justify-content: space-between;

padding: 200rpx 0;

box-sizing: border-box;

}

3、js

js是重点,他是一个中间桥梁,获取微信小程序前端的数值和传导ssm的后台。

wx.request这是微信的接口,也就是发起请求。

url: ‘http://localhost:8080/lg/wechat/add',这就是你的项目的地址,也就是controller。

dada就是你要传到后台的数据。

wx.request({

url: 'http://localhost:8080/lg/wechat/add',

data: {

openid: openid,

userpassword: userpassword,

name: name,

sex: app.sex,

tel: tel,

email: email,

vip: app.vip,

},

接下来是完整的js代码(获取表单的数据,这里的js包括获取openid,如果你使用,直接删除就可以)

Page({

data: {

industryarr: [],

industryindex: 0,

statusarr: [],

statusindex: 0,

jobarr: [],

jobindex: 0,

},

onLoad: function () {

this.fetchData()

},

fetchData: function () {

this.setData({

industryarr: ["请选择","男", "女"],

statusarr: ["是否注册vip会员","是", "否"],

})

},

// bindPickerChange1: function (e){

// var sex = e.detail.value;

// console.log(sex)

// if(sex==1){

// var app=getApp()

// app.sex='男'

// }else{

// var app = getApp()

// app.sex = '女'

// }

// },

// bindPickerChange2: function (e) {

// var vip = e.detail.value;

// console.log(vip)

// if(vip==1){

// var app=getApp()

// app.vip='是'

// }else{

// var app = getApp()

// app.vip = '否'

// }

// },

bindPickerChange: function (e) { //下拉选择

const eindex = e.detail.value;

//onsole.log(industryarr[e.detail.value])

const name = e.currentTarget.dataset.pickername;

console.log(name)

// this.setData(Object.assign({},this.data,{name:eindex}))

switch (name) {

case 'industry':

var app=getApp()

app.sex = this.data.industryarr[eindex]

console.log(app.sex)

this.setData({

industryindex: eindex

})

case 'status':

var app = getApp()

app.vip = this.data.statusarr[eindex]

console.log(app.vip)

this.setData({

statusindex: eindex

})

break;

case 'job':

this.setData({

jobindex: eindex

})

break;

default:

return

}

},

formSubmit(e) {

var name = e.detail.value.name;

var tel = e.detail.value.tel;

var email = e.detail.value.email;

var userpassword = e.detail.value.password;

console.log('form发生了submit事件,携带数据为:', name, tel, email)

wx.login({

success: function (res) {

var code1 = res.code

var app = getApp()

var appid1 = app.globalData.appid

var secret1 = app.globalData.secret

console.log('获取的code', code1, appid1, secret1)

var ul = 'https://api.weixin.qq.com/sns/jscode2session?appid=' + appid1 + '&secret=' + secret1 + '&js_code=' + code1 + '&grant_type=authorization_code'

wx.request({

url: ul,

method: 'GET',

success: function (e) {

var openid = e.data.openid

console.log('获取登录身份的唯一openid', openid)

// wx.setStorageSync('openid', openid)

//wx.setStorageSync('name', name)

wx.request({

url: 'http://localhost:8080/lg/wechat/add',

data: {

openid: openid,

userpassword: userpassword,

name: name,

sex: app.sex,

tel: tel,

email: email,

vip: app.vip,

},

//method:'POST',

success: function (res) {

const mess=res.data

if (res.data){

console.log("fhgdshxcbxcbxcbcxbxcbxcfj")

wx.showToast({

title: '注册成功',

icon:'success',

})

}else{

wx.showModal({

title: '温馨提示',

content: '您已注册过,请不要重复注册',

success: function (res) {

if (res.confirm) {

wx.navigateTo({

url: '../../pages/login/login',

})

} else if (res.cancel) {

wx.navigateTo({

url: '../../pages/hotel/hotel'

})

}

}

})

}

}

})

}

})

}

})

},

})

4、ssm的后端实现

因为小程序的数据格式都是json格式,所以我们的ssm后台也必须是就json的格式,Java要实现json的格式,需要对应的jar包,打下自行下载。

package org.lg.controller;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

import org.lg.entity.user;

import org.lg.entity.wcuser;

import org.lg.service.roomlistService;

import org.lg.service.roomtypesService;

import org.lg.service.wcuserService;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestParam;

import org.springframework.web.bind.annotation.ResponseBody;

import org.springframework.web.servlet.ModelAndView;

import com.fasterxml.jackson.databind.util.JSONPObject;

import net.sf.json.JSON;

import net.sf.json.JSONObject;

@Controller

@RequestMapping("wechat")

public class wechatController {

@Autowired

public wcuserService wcservice;

@Autowired

public roomlistService roomlistservice;

@Autowired

public roomtypesService roomtypesservice;

//用户注册

@RequestMapping("add")

@ResponseBody

public JSONObject adduser(@RequestParam("openid") String openid,@RequestParam("name") String name,@RequestParam("sex") String sex,@RequestParam("tel") String tel,

@RequestParam("email") String email,@RequestParam("vip") String vip,HttpServletRequest request,

HttpServletResponse response,@RequestParam("userpassword") String userpassword) {

System.out.println(openid+name+sex+tel+email+vip);

Map map = new HashMap();

if(openid!=null) {

//判断openid在注册的列表中是否存在

wcuser queryopenid = wcservice.queryopenid(openid);

//String openid2 = queryopenid.getOpenid();

if(queryopenid!=null) {

map.put("msg","您已经注册过,请不要重复注册");

JSONObject json = JSONObject.fromObject(map);

return json;

}else{

wcservice.adduc(openid,name, sex, tel, email, vip,userpassword);

//map.put("status","succ");

map.put("msg","注册成功");

JSONObject json = JSONObject.fromObject(map);

return json;

}

}else {

wcuser wcuser1 = wcservice.queryopenid(openid);

String openid2 = wcuser1.getOpenid();

if(openid2!=null) {

map.put("msg","请不要重复注册");

JSONObject json = JSONObject.fromObject(map);

return json;

}else {

map.put("msg","完善信息");

JSONObject json = JSONObject.fromObject(map);

return json;

}

}

}

}

5、数据库的那些方法和接口就不写了,重点是小程序的前段和后端的交互。

到此这篇关于微信小程序以ssm做后台开发的实现示例的文章就介绍到这了,更多相关小程序ssm做后台开发内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值