1:添加依赖
<!-- 二维码支持包 --> <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.2.0</version> </dependency> <dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.2.0</version> </dependency>
2:service层:
/** * 生成二维码方法 * * @param url 访问链接 * @param resp response对象 * @throws Exception 抛出异常 */ public void getQrcode(String url, HttpServletResponse resp) throws Exception { ServletOutputStream stream = null; try { stream = resp.getOutputStream(); QRCodeWriter qrCodeWriter = new QRCodeWriter(); BitMatrix bm = qrCodeWriter.encode(url, BarcodeFormat.QR_CODE, 300, 300); MatrixToImageWriter.writeToStream(bm, "png", stream); } catch (WriterException e) { e.getStackTrace(); } finally { if (stream != null) { stream.flush(); stream.close(); } } }
controller层:
@Autowired private QRcodeService qRcodeService; @RequestMapping(value = "/open") public ModelAndView open(){ ModelAndView mv=new ModelAndView(); mv.setViewName("/test.btl"); return mv; } @RequestMapping(value = "/qrcode",method={RequestMethod.POST,RequestMethod.GET}) public ModelAndView qrcode( String qrid,HttpServletResponse response){ ModelAndView mv=new ModelAndView(); try { qRcodeService.getQrcode(qrid,response); } catch (Exception e) { e.printStackTrace(); } mv.addObject("qrid",qrid); mv.setViewName("test.btl"); return mv; }
前端页面:
<form id="enter" action="/qrcode" method="post" class="form-horizontal form-label-left"> <div class="form-group"> <label class="control-label col-md-3 col-sm-3 col-xs-12">票编号</label> <div class="col-md-9 col-sm-9 col-xs-12"> <input name="qrid" id="qrid" type="text" class="form-control" placeholder="请输入有效的票编号" required> </div> <div class="modal-footer"> <button type="submit" class="btn btn-primary">提交</button> </div> </div> </form>
然后就在可以在前端页面输入你要生成二维码的内容啦。