1. 程式人生 > >微信小程式填坑之路之springmvc與小程式的資料互動(json)

微信小程式填坑之路之springmvc與小程式的資料互動(json)

springmvc框架寫到現在終於牽扯到小程式了(所以別說我“不務正業”),對於一個應用程式來說,它的本質其實就是無數個對資料進行增刪改查的操作,這裡起到至關重要的就是資料,於是這篇帖子的目的就是實現小程式與後臺資料的互動。

小程式使用的是wx.request的api來提交和接收資料,最常見的就是接收後臺傳過來的json資料,並對其進行解析

先看執行結果:

這裡總結springmvc框架的三種轉json方法

後臺前臺返回前臺的json格式
物件/bean/實體類json{“id”: 0,”username”: “”,”age”: 0}
List<實體類>json[{“id”:1,”username”:”2”,”age”:1},{“id”:2,”username”:”3”,”age”:2}]
Map<String,實體類>json{“success”:true,”detail”:[ ] }

按步驟,從頭開始來:

後臺

web.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-appxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    id="WebApp_ID"version="3.0">
  3. <servlet>
  4. <servlet-name>springmvc</servlet-name>
  5. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  6. <init-param>
  7. <param-name>contextConfigLocation</param-name>
  8. <param-value>classpath:config/ybajax.xml
    </param-value>
  9. </init-param>
  10. </servlet>
  11. <servlet-mapping>
  12. <servlet-name>springmvc</servlet-name>
  13. <url-pattern>*.mn</url-pattern>
  14. </servlet-mapping>
  15. <filter>
  16. <filter-name>CharacterEncodingFilter</filter-name>
  17. <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  18. <init-param>
  19. <param-name>encoding</param-name>
  20. <param-value>UTF-8</param-value>
  21. </init-param>
  22. </filter>
  23. <filter-mapping>
  24. <filter-name>CharacterEncodingFilter</filter-name>
  25. <url-pattern>/*</url-pattern>
  26. </filter-mapping>
  27. </web-app>

配置檔案 ybajax.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans
  3. xmlns="http://www.springframework.org/schema/beans"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xmlns:mvc="http://www.springframework.org/schema/mvc"
  6. xmlns:context="http://www.springframework.org/schema/context"
  7. xsi:schemaLocation="http://www.springframework.org/schema/beans
  8. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  9. http://www.springframework.org/schema/mvc
  10. http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
  11. http://www.springframework.org/schema/context
  12. http://www.springframework.org/schema/context/spring-context-3.0.xsd">
  13. <context:component-scanbase-package="action"/>
  14. <!-- 註冊介面卡 -->
  15. <beanclass="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
  16. <propertyname="messageConverters">
  17. <list>
  18. <beanclass="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
  19. </list>
  20. </property>
  21. </bean>
  22. <beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver">
  23. <propertyname="prefix"value="/jsp/"/>
  24. <propertyname="suffix"value=".jsp"/>
  25. </bean>
  26. </beans>

注意json需要對應的介面卡類

實體類:User.java (實現bean用到)和 Bean.java(實現List、Map用到)

  1. package bean;
  2. publicclassUser{
  3. privateint id;
  4. privateString username;
  5. privateint age;
  6. publicUser(){}
  7. publicUser(int id,String username,int age){
  8. this.id = id;
  9. this.username = username;
  10. this.age = age;
  11. }
  12. publicint getId(){
  13. return id;
  14. }
  15. publicvoid setId(int id){
  16. this.id = id;
  17. }
  18. publicString getUsername(){
  19. return username;
  20. }
  21. publicvoid setUsername(String username){
  22. this.username = username;
  23. }
  24. publicint getAge(){
  25. return age;
  26. }
  27. publicvoid setAge(int age){
  28. this.age = age;
  29. }
  30. }
  31. package bean;
  32. import java.util.ArrayList;
  33. import java.util.List;
  34. publicclassBean{
  35. privateList<User> listuser=newArrayList<User>();
  36. privateBean(){}
  37. publicList<User> getListuser(){
  38. return listuser;
  39. }
  40. publicvoid setListuser(List<User> listuser){
  41. this.listuser = listuser;
  42. }
  43. }

AjaxAction.java

  1. package action;
  2. import java.util.ArrayList;
  3. import java.util.HashMap;
  4. import java.util.List;
  5. import java.util.Map;
  6. import org.springframework.stereotype.Controller;
  7. import org.springframework.ui.Model;
  8. import org.springframework.web.bind.annotation.RequestBody;
  9. 相關推薦

    程式springmvc程式資料互動json

    springmvc框架寫到現在終於牽扯到小程式了(所以別說我“不務正業”),對於一個應用程式來說,它的本質其實就是無數個對資料進行增刪改查的操作,這裡起到至關重要的就是資料,於是這篇帖子的目的就是實現小程式與後臺資料的互動。小程式使用的是wx.request的api來提交和接

    支付開發日常支付祕鑰絕對路徑問題

    如果你使用了微信的官方SDK,那我想其實你很容易發現這個問題 在微信官方PHPSDK中WxPay.Api.php這個檔案中,微信支付祕鑰這裡的路徑寫的是相對路徑 這樣這樣 點開路徑之後我們看到的是這樣這樣: 然而我們在生產環境的時候,微信要求這個路徑為絕對路徑,所以我們需要對Wx

    Android分享再次 error -6 一閃而過

    三年前公司主力專案剛開始的時候要用到微信支付和微信分享,那個時候已經填過一次坑了,可惜當時填了就填了,忘記記筆記。。俗話說得好,好記性不如爛筆頭,這次新專案需要做微信分享的時候,又不小心踩回那個坑。。。 話說就是回到申請key的時候,我本來都有印象微信開放平臺建立應用的

    分享功能過程

    要對H5頁面進行微信分享自定義標題,描述,圖片的開發,遇到各種坑,記錄下填坑的過程。 參考文章: http://www.jb51.net/article/98467.htm https://my.oschina.net/superkangning/blog/368043 h

    【SSH進階】Struts + Spring + Hibernate 進階開端

    height 一段 ioc 效率 陽光大道 面向對象的思想 text ase 們的 Long Long ago。就聽說過SSH。起初還以為是一個東東,詳細內容更是不詳,總認為高端大氣上檔次,經過學習之後才發現,不不過高大上,更是低調奢華有內涵,經過一段時間的

    如何學習爬蟲,我的爬蟲學習,怎樣學好爬蟲的,爬蟲認知篇1

              作為一個小白來說,那就是---->我,看那多原理,等於天書,我看不懂,但是為啥是叫了解爬蟲,而不是懂裡邊內容,框架(Scrapy)怎麼寫的,我作為小白知道怎麼用,不就行了嗎,對不對,之後在瞭解深入.

    spring原始碼學習---深度分析IOC容器初始化過程

    分析FileSystemXmlApplicationContext的建構函式,到底都做了什麼,導致IOC容器初始化成功。 public FileSystemXmlApplicationContext(String[] configLocations, boolean ref

    【SpringBoot學習】08.Springboot配置檔案詳解

    轉載宣告:商業轉載請聯絡作者獲得授權,非商業轉載請註明出處.原文來自 © 呆萌鍾【SpringBoot學習之路】08.Springboot配置檔案詳解(四)  自動配置原理 配置檔案到底能寫什麼?怎麼寫?自動配置原理; 配置檔案能配置的屬性參照

    【SpringBoot學習】07.Springboot配置檔案詳解

    轉載宣告:商業轉載請聯絡作者獲得授權,非商業轉載請註明出處.原文來自 © 呆萌鍾 【SpringBoot學習之路】07.Springboot配置檔案詳解(三) Profile多環境支援 Profile是Spring對不同環境提供不同配置功能的支援,可以通

    【SpringBoot學習】06.Springboot配置檔案詳解

    轉載宣告:商業轉載請聯絡作者獲得授權,非商業轉載請註明出處.原文來自 © 呆萌鍾 【SpringBoot學習之路】06.Springboot配置檔案詳解(二) 配置檔案值注入 @Value獲取值和@ConfigurationProperties獲取值比較

    【SpringBoot學習】05.Springboot配置檔案詳解

    轉載宣告:商業轉載請聯絡作者獲得授權,非商業轉載請註明出處.原文來自 © 呆萌鍾【SpringBoot學習之路】05.Springboot配置檔案詳解(一)  配置檔案 Spring Boot使用一個全域性的配置檔案 applic

    演算法工程師修仙:吳恩達機器學習作業

    吳恩達機器學習筆記及作業程式碼實現中文版 第一個程式設計作業:單變數線性迴歸(python程式碼實現) 一元線性迴歸 問題描述 在本練習的這一部分中,您將使用只有單變數的線性迴歸方法預測餐車的利潤。 假設你是一家連鎖餐廳的執行長,正在

    SpringBoot成長三:使用spring Cloud 搭建服務client

    首先 我們需要進行專案(eureka客戶端)的搭建,實際上就是建造一個spring boot專案。 注意要點 1: pom檔案裡面還是初始的那些,但是 這個節點的版本號需要改成適應的,我這裡使用的是1.5.14的版本得,但是預設建立專案是2.0.X版本得,如果引入了

    【Kaggle-MNIST】CNN+改進過的損失函式

    簡述 在上一個版本上的家裡CNN的框架。 呼叫了上面的框架。 目前: 分數:0.9160 排名:2400+ 框架程式碼 import pandas as pd import torch.utils

    【成為Java開發大神】入職公司Java開發實習1

    既然步入了Java開發這個坑,就要勵志成為這方面的大神,努力成為公司裡面數一數二的開發者。 入職實習1個月,特此記錄開發的成長學習心得。我的經歷希望幫助你我。持續更新。。。 ===========================================================

    【SSH進階】Struts基本原理 + 實現簡單登入

          上面博文,主要簡單的介紹了一下SSH的基本概念,比較巨集觀,作為初學者能夠有一個整體上的認識,個人認為對學習有很好的輔助功能,它不僅僅是一個“瞭望塔”,更是檢驗是否真正掌握所有內容的一個前

    java二進制數據類型

    bsp bre 進制 3.4 高精度 short ali word 部分 一、各數據類型的最大值和最小值整數:以byte為例,我們知道,byte共有8個bit位,最大值是0111111,最小值是10000000,用十進制來表示就是-128~127,即-2^7~2^7。依照上

    Qt遊戲手柄的互動

    用途 通過手柄與Qt的通訊,傳送指令至遠端裝置,控制遠端裝置的運動。 手柄種類 市面上的遊戲手柄也有多種種類,主流的是藍芽手柄、2.4g手柄和usb手柄。2.4g手柄有的會識別出來是Xbox裝置,有的識

    AVL樹的基本操作插入(遞迴非遞迴編碼)2

    摘要:(1)插入的基本思路;首先遞迴的插入,插入完成之後,逐個返回,對於返回的每一個節點都要檢查,是否該次插入是使得這個節點不平衡。為了簡化程式碼,定義一個Height()函式,用來處理該節點為NULL的情況。當該節點不平衡時,就要進行旋轉。根據插入元素與該節點

    程式:佈局適配方案rpx、px、vw、vh

    因為小程式是以微信為平臺執行的,可以同時執行在android與ios的裝置上,所以不可避免的會遇到佈局適配問題,特別是在iphone5上,因為螢幕尺寸小的緣故,也是適配問題最多的機型,下面就簡單介紹幾種適配方法。 rpx適配 rpx是小程式中