目錄
1,功能說明
2,修改expressList.html、index.html
3,編寫QRCodeController實作:建立二維碼、展示二維碼内容
4,展示二維碼頁面
完整項目在這裡實時更新<( ̄︶ ̄)↗[GO!]:
ExpressManagementSystem
https://github.com/GoodbyeFirefly/ExpressManagementSystem![]()
07-項目訓練_二維碼展示
1,功能說明
二維碼主要展示兩方面的内容:辨別使用者(掃碼可檢視使用者手機号),辨別快遞(可看到快遞取件碼)
通過/wx/createQRCode.do來處理二維碼相關的請求。附帶參數type用來标記展示使用者還是快遞的二維碼,參數code、userPhone自選。比如/wx/createQRCode.do?type=express&code=123456
2,修改expressList.html、index.html
通過點選生成二維碼的連結,向後端發送建立二維碼的請求
expressList.html
index.html
3,編寫QRCodeController實作:建立二維碼、展示二維碼内容
建立二維碼(将要展示的資料存入session)、展示二維碼内容(将session中的資料返還給前端,并寫入二維碼中)
package com.xxy.wx.controller;
import com.xxy.bean.Message;
import com.xxy.mvc.ResponseBody;
import com.xxy.mvc.ResponseView;
import com.xxy.util.JSONUtil;
import com.xxy.util.UserUtil;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class QRCodeController {
@ResponseView("/wx/createQRCode.do")
public String createQRCode(HttpServletRequest request, HttpServletResponse response) {
String type = request.getParameter("type");
String code = null;
String userPhone = null;
String QRCodeContent = null;
if ("express".equals(type)) {
code = request.getParameter("code");
QRCodeContent = "express_".concat(code);
} else {
// 這裡要先擷取微信使用者,再擷取其電話号碼
userPhone = UserUtil.getWxUser(request.getSession()).getUserphone();
QRCodeContent = "userPhone_".concat(userPhone);
}
HttpSession session = request.getSession();
session.setAttribute("qrcode", QRCodeContent);
return "/personQRcode.html";
}
@ResponseBody("/wx/qrcode.do")
public String getQRCode(HttpServletRequest request, HttpServletResponse response) {
String qrcode = (String) request.getSession().getAttribute("qrcode");
Message msg = new Message();
if (qrcode == null) {
msg.setStatus(-1);
msg.setResult("取件碼擷取出錯,請使用者重新操作");
} else {
msg.setStatus(0);
msg.setResult(qrcode);
}
return JSONUtil.toJSON(msg);
}
}
修改application.properties