- 小程序生命周期三段式结构口诀
向贤
小程序前端开发技术面试小程序
文章目录一、应用大总管[应用生命周期(AppLevel)]1.冷启热启错不慌(App.onLaunch/onShow/onError)2.切后隐身守空房(App.onHide)3.未寻页面有担当(App.onPageNotFound)二、页面五部曲[页面生命周期(PageLevel)]1.加载登场秀(Page.onLoad)2.现身就绪走(Page.onShow→onReady)3.隐身卸载收(P
- responseType: “blob“导致不能获取查看后台返回的信息
不想上班只想要钱
前端vuejs前端javascript
responseType:"blob"导致不能获取查看后台返回的信息constfileReader=newFileReader()fileReader.readAsText(newBlob([response.data],{type:'application/octet-stream'}),'utf-8')fileReader.onload=()=>{constresult=JSON.parse(
- vue3开发uniapp转字节小程序注意事项
奔跑的代码!
vue3.0uniAppuni-app小程序vue
vue3开发uniapp转字节小程序注意事项1.provide-inject跨层通信不支持问题2.不能自定义头部,需要去申请3.不能使用moment日期插件4.不要再组件中使用onShow、onLoad等生命周期5.picker-view、picker-view-column抖音小程序无法选中问题开发相关地址1.抖音开放平台2.开发者平台项目本身是vue3+ts+uniapp写的微信小程序,因产品
- 在Vue中,onLoad,onShow ,mounted的区别
檐角小猫
vue.js前端javascript
1.onLoad触发时机:页面首次加载时触发,且只会触发一次。适用场景:适合在页面加载时执行一次性操作,比如获取页面参数、初始化数据、发送请求等。特点:可以接收页面传递的参数(通过options对象)。是UniApp页面生命周期钩子,不是Vue组件的钩子。示例代码javascriptexportdefault{onLoad(options){console.log('页面加载,参数为:',opti
- 解决使用 HBuilder X 软件、uni-app 框架和 uView UI 框架开发的项目,需要同时发布成 H5 和微信小程序,且部分页面存在差异问题
T-shmily
微信小程序uni-app微信小程序
主要是利用特定的注释语法1.条件编译原理:uni-app支持条件编译,通过特定的注释语法,可以在不同的平台下编译不同的代码,从而实现页面内容的差异化。这是H5页面特有的内容这是微信小程序特有的内容这是所有平台通用的内容exportdefault{data(){return{//通用数据};},onLoad(){//#ifdefH5console.log('这是H5平台的逻辑');//#endif/
- js基础二
才不是小emo的小杨
前端爬虫javascript前端html
JavaScript基础下1事件处理JS事件(event)是当用户与网页进行交互时发生的事情,例如单机某个链接或按钮、在文本框中输入文本、按下键盘上的某个按键、移动鼠标等等。当事件发生时,您可以使用JavaScript中的事件处理程序(也可称为事件监听器)来检测并执行某些特定的程序。一般情况下事件的名称都是以单词on开头的,例如点击事件onclick、页面加载事件onload等。下表中列举了一些J
- 微信小程序实现nfc功能(读取,写入)
_lucky_boy
新手小白微信小程序nfc标签卡前端微信小程序小程序
标签读取功能可以放到onLoad中,也可以是一个点击事件//获取NFC实例constnfc=wx.getNFCAdapter()//绑定监听NFC标签nfc.onDiscovered(res=>{//监听到数据进行返回根据返回的数据在进行处理console.log(9999,res)})//开始监听不能缺少nfc.startDiscovery({success(res){console.log(5
- url转base64(富文本编辑器)
werch
前端javascript开发语言
window.URL=window.URL||window.webkitURL;varxhr=newXMLHttpRequest();xhr.open("get",src,true);//至关重要xhr.responseType="blob";xhr.onload=function(){if(this.status==200){//得到一个blob对象varblob=this.response;c
- uniapp h5页面获取跳转传参的简单方法
lyz246859
uni-app
有过h5页面开发的朋友,肯定知道,在没有使用相关框架时候,获取从上游app跳转过来的参数极其麻烦,需要我们手动获取页面链接,并截取到正确的参数值,但是在如今在uniapp项目中的h5页面,则无需如此繁琐,直接这样获取:可以看到,就是是从app页面分享的跳转的页面,也可以直接使用onLoad中的option直接获取参数,是不是很方便呢
- uniapp——如何在onLoad和onShow中调用函数只被调用一次
耶啵奶膘
univueuni-app
说明例如:当小程序调用扫码扫描设备二维码时,展示相关套餐,同时会把码内的id存成缓存。以确保切换到其他页面回来后套餐还在。把请求套餐的接口放在onShow里面就行。但同时使用微信扫码进入的时候一般会在onLoad里面调用。这样就会出现每次进入这个页面会调用两次套餐的接口。预期结果:只调用一次接口要解决这个问题,我们可以通过设置一个标志位来控制getList()函数的调用。在onLoad函数中,我们
- 微信小程序面试题
Sunshinedada
vue.js前端javascript
微信小程序面试题微信小程序页面的生命周期函数主要包括哪些?onLoad:页面加载时触发。一个页面只会调用一次,可以在onLoad的参数中获取打开当前页面路径中的参数。onShow:页面显示时触发调用。onReady:页面初次渲染完成时触发,一个页面只会调用一次。onHide:页面隐藏时触发,如navigateTo或底部tab切换到其他页面等。onUnload:页面卸载时触发。如redirectTo
- uni-app使用websocket
外派叙利亚
uni-appwebsocket网络协议
点击发送请求离开页面exportdefault{onLoad(){//进入这个页面的时候创建websocket连接【整个页面随时使用】this.connectSocketInit();},data(){return{socketTask:null,//确保websocket是打开状态is_open_socket:false}},//关闭websocket【必须在实例销毁之前关闭,否则会是under
- 前端 window.print() 打印图片
BillKu
前端
在使用document.write时,确保内容加载完成后再执行其他操作(如print),可以通过以下方法实现:1.使用window.onload事件window.onload事件会在页面所有资源(包括图片、脚本等)加载完成后触发。javascript复制window.onload=function(){document.write("页面已加载完成");window.print();//确保内容加
- 【微信小程序】常见问题-解决tabBar不能传参的问题
墨夶
微信小程序微信小程序小程序
微信小程序的底部tabBar页面跳转时,使用wx.switchTab方法无法直接传递参数。这是因为wx.switchTab方法的url参数不允许带有查询字符串。然而,这并不意味着你无法在tabBar页面之间传递参数。以下是几种常见的解决方法:1.使用全局变量app.globalData你可以通过在app.js中定义全局变量来存储需要传递的参数。在跳转前设置全局变量,然后在目标页面的onLoad方法
- 压缩动态图片gif 和 静态图片的方法,返回Blob对象
weixin_45907435
javascript前端开发语言
1、定义--压缩动态图片方法exportconstgifCompress=(file,url,max,min,times)=>{if(window.FileReader){letcolors=255letcount=0constfr=newFileReader()fr.readAsArrayBuffer(file)returnnewPromise((resolve)=>{fr.onload=asy
- uniapp-列表样式
耶啵奶膘
univueuni-appjavascript
{{index}}import{ref,reactive}from'vue'import{onLoad,onShow,onReachBottom}from'@dcloudio/uni-app'importifrom'@/libs/common/index.js'importapifrom'@/request/api.js'import{userStore}from'@/store/userStor
- vant4 van-list组件的使用
a濯
javascript前端
0"v-model:loading="loading":finished="finished":immediate-check="false"finished-text="没有更多了"@load="onLoad">//加载constloading=ref(false);//全部加载完毕constfinished=ref(false);//加载更多触底事件constonLoad=async()=>{
- js如何监听元素事件是否被移除_JS监听事件的叠加和移除功能
weixin_39830225
js如何监听元素事件是否被移除
htmlDOM元素有很多on开头的监听事件,如onload、onclick等,见DOM事件列表。但是同一种事件,后面注册的会覆盖前面的:window.onresize=function(){alert(1);}window.onresize=function(){alert(2);}//改变窗口大小时,只会弹出2addEventListener监听利用addEventListener添加监听事件,
- uniapp使用uni.navigateBack返回页面时携带参数到上个页面
会说法语的猪
uniappuni-app前端
我们平时开发中也经常遇到这种场景,跳转一个页面会进行一些操作,操作完成后再返回上个页面同时要携带着一些参数其实也很简单,也来记录一下吧假设从A页面跳转到B页面A页面直接上完整代码了哈,很简单:跳转exportdefault{onLoad(){//跟vue的兄弟传值一个意思uni.$on('face-msg',this.faceMsg)},onUnload(){uni.$off('face-msg'
- uniapp web-view调整修改高度设置
黑云压城After
前端uni-appjavascript
web-view默认占全屏,怎么处理自定义高度,实现如下:视频监控data数据:exportdefault{data(){return{urlType:null,webviewStyles:{progress:{color:"#FF3333"}},};},};核心代码:onLoad(options){//#ifdefAPP-PLUSletheight=0;//定义动态的高度变量letstatusb
- uniapp uni.navigateTo 传值的几种方式
流氓也是种气质 _Cookie
uni-apphtml
一、传字符串传入lettitle='hello'uni.navigateTo({url:`buttonPage/buttonPage?title=${title}`})接收onLoad(option){let{title}=option},二、传对象传入letdata={title:'hello',id:1}uni.navigateTo({url:`buttonPage/buttonPage?da
- vue 给iframe设置src_vue项目中,iframe的src动态赋值
weixin_39961636
vue给iframe设置src
可以类似这样:/***动态创建iframe*@paramdom创建iframe的容器,即在dom中创建iframe。dom能够是div、span或者其它标签。*@paramsrciframe中打开的网页路径*@paramonloadiframe载入完后触发该事件。能够为空*@return返回创建的iframe对象*/createIframe(dom,src,onload){//在document中
- 微信小程序连接蓝牙
xluo1715
微信小程序小程序前端javascriptvue
准备工作:1:需要一个蓝牙板子和串口软件(卖蓝牙板子的商家会提供),手机上需要蓝牙调试助手(为了测试蓝牙是否正常连接)2:蓝牙板通过usb插入到电脑端3:安装好串口调试工具并打开连接上蓝牙4:打开手机蓝牙调试助手,连接上后进行读写操作,确认已正常连接通信准备工作完结!直接上代码第一步:初始化蓝牙设备,onShow里面调用或者onLoad里面调用都可,看你的需求场景initBlue(){wx.ope
- 生命周期函数——created、onload、mounted、updated的执行顺序
编程星空
前端javascriptvue.js
created和onload是非常重要的生命周期函数,涉及到组件初始化和数据绑定的顺序。created:(1)created是在Vue实例创建完成后立即被执行的。(2)在created中我们可以访问到组件的数据和方法,并进行一些初始化操作。此时的this指向VueComponent(其中包含所有的组件数据和方法)(3)通常我们会在created函数中发送请求获取数据,并将其存储在组件的data中。
- A*(自动寻路)
灵焱
onLoad:function(){varMAP={rows:5,cols:5,arr:[[0,1,0,0,0],[0,1,0,1,0],[0,1,0,1,0],[0,1,0,1,0],[0,0,0,1,0]]}cc.log(this.searchRoad(MAP,0,0,4,4))},searchRoad:function(MAP,start_x,start_y,end_x,end_y){//用
- 小程序适配底部安全距离
dingcho
前端小程序
方案一onLoad(options){const{screenHeight,safeArea,windowHeight}=wx.getWindowInfo()letsafeBottom=windowHeightif(safeArea?.bottom){safeBottom=safeArea.bottom}safeBottom=screenHeight-safeBottomthis.setData(
- Uniapp判断设备是安卓还是 iOS,并调用不同的方法
mosen868
Uniappiosuni-appandroid
在UniApp中,可以通过uni.getSystemInfoSync()方法来获取设备信息,然后根据系统类型判断当前设备是安卓还是iOS,并调用不同的方法。示例代码exportdefault{onLoad(){this.checkPlatform();},methods:{checkPlatform(){//获取系统信息constsystemInfo=uni.getSystemInfoSync()
- html ul点击删除,用原生实现点击删除点击的li
weixin_39993454
htmlul点击删除
简单的实现方式#button{display:inline-block;}ul{list-style:none;}li{background-color:red;display:inline-block;width:20px;padding:10px;margin-left:3px;color:white;}window.onload=function(){varoBtn1=document.ge
- 微信小程序使用canvas画图保存图片到手机相册
岩岩很哇塞!
微信小程序微信小程序小程序canva可画
微信小程序要实现使用canvas绘制一个图,然后保存到手机相册**最终效果:**实现生成以下图片一、初始化canvas//wxml页面设置canvas标签//js页面初始化canvasdata:{ctx:'',details:'',windowW:375*3,windowH:265*3,ratio:3,showCanvas:false},onLoad(options){this.setData({
- vue前端根据接口返回的url 下载图片
爱心觉罗晓宇
java前端服务器
downloadPicture(imgSrc,name){constimage=newImage();//解决跨域Canvas污染问题image.setAttribute("crossOrigin","anonymous");image.src=imgSrc;image.onload=()=>{constcanvas=document.createElement("canvas");canvas.
- 开发者关心的那些事
圣子足道
ios游戏编程apple支付
我要在app里添加IAP,必须要注册自己的产品标识符(product identifiers)。产品标识符是什么?
产品标识符(Product Identifiers)是一串字符串,它用来识别你在应用内贩卖的每件商品。App Store用产品标识符来检索产品信息,标识符只能包含大小写字母(A-Z)、数字(0-9)、下划线(-)、以及圆点(.)。你可以任意排列这些元素,但我们建议你创建标识符时使用
- 负载均衡器技术Nginx和F5的优缺点对比
bijian1013
nginxF5
对于数据流量过大的网络中,往往单一设备无法承担,需要多台设备进行数据分流,而负载均衡器就是用来将数据分流到多台设备的一个转发器。
目前有许多不同的负载均衡技术用以满足不同的应用需求,如软/硬件负载均衡、本地/全局负载均衡、更高
- LeetCode[Math] - #9 Palindrome Number
Cwind
javaAlgorithm题解LeetCodeMath
原题链接:#9 Palindrome Number
要求:
判断一个整数是否是回文数,不要使用额外的存储空间
难度:简单
分析:
题目限制不允许使用额外的存储空间应指不允许使用O(n)的内存空间,O(1)的内存用于存储中间结果是可以接受的。于是考虑将该整型数反转,然后与原数字进行比较。
注:没有看到有关负数是否可以是回文数的明确结论,例如
- 画图板的基本实现
15700786134
画图板
要实现画图板的基本功能,除了在qq登陆界面中用到的组件和方法外,还需要添加鼠标监听器,和接口实现。
首先,需要显示一个JFrame界面:
public class DrameFrame extends JFrame { //显示
- linux的ps命令
被触发
linux
Linux中的ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。
要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而 ps 命令就是最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行
- Android 音乐播放器 下一曲 连续跳几首歌
肆无忌惮_
android
最近在写安卓音乐播放器的时候遇到个问题。在MediaPlayer播放结束时会回调
player.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mp.reset();
Log.i("H
- java导出txt文件的例子
知了ing
javaservlet
代码很简单就一个servlet,如下:
package com.eastcom.servlet;
import java.io.BufferedOutputStream;
import java.io.IOException;
import java.net.URLEncoder;
import java.sql.Connection;
import java.sql.Resu
- Scala stack试玩, 提高第三方依赖下载速度
矮蛋蛋
scalasbt
原文地址:
http://segmentfault.com/a/1190000002894524
sbt下载速度实在是惨不忍睹, 需要做些配置优化
下载typesafe离线包, 保存为ivy本地库
wget http://downloads.typesafe.com/typesafe-activator/1.3.4/typesafe-activator-1.3.4.zip
解压r
- phantomjs安装(linux,附带环境变量设置) ,以及casperjs安装。
alleni123
linuxspider
1. 首先从官网
http://phantomjs.org/下载phantomjs压缩包,解压缩到/root/phantomjs文件夹。
2. 安装依赖
sudo yum install fontconfig freetype libfreetype.so.6 libfontconfig.so.1 libstdc++.so.6
3. 配置环境变量
vi /etc/profil
- JAVA IO FileInputStream和FileOutputStream,字节流的打包输出
百合不是茶
java核心思想JAVA IO操作字节流
在程序设计语言中,数据的保存是基本,如果某程序语言不能保存数据那么该语言是不可能存在的,JAVA是当今最流行的面向对象设计语言之一,在保存数据中也有自己独特的一面,字节流和字符流
1,字节流是由字节构成的,字符流是由字符构成的 字节流和字符流都是继承的InputStream和OutPutStream ,java中两种最基本的就是字节流和字符流
类 FileInputStream
- Spring基础实例(依赖注入和控制反转)
bijian1013
spring
前提条件:在http://www.springsource.org/download网站上下载Spring框架,并将spring.jar、log4j-1.2.15.jar、commons-logging.jar加载至工程1.武器接口
package com.bijian.spring.base3;
public interface Weapon {
void kil
- HR看重的十大技能
bijian1013
提升能力HR成长
一个人掌握何种技能取决于他的兴趣、能力和聪明程度,也取决于他所能支配的资源以及制定的事业目标,拥有过硬技能的人有更多的工作机会。但是,由于经济发展前景不确定,掌握对你的事业有所帮助的技能显得尤为重要。以下是最受雇主欢迎的十种技能。 一、解决问题的能力 每天,我们都要在生活和工作中解决一些综合性的问题。那些能够发现问题、解决问题并迅速作出有效决
- 【Thrift一】Thrift编译安装
bit1129
thrift
什么是Thrift
The Apache Thrift software framework, for scalable cross-language services development, combines a software stack with a code generation engine to build services that work efficiently and s
- 【Avro三】Hadoop MapReduce读写Avro文件
bit1129
mapreduce
Avro是Doug Cutting(此人绝对是神一般的存在)牵头开发的。 开发之初就是围绕着完善Hadoop生态系统的数据处理而开展的(使用Avro作为Hadoop MapReduce需要处理数据序列化和反序列化的场景),因此Hadoop MapReduce集成Avro也就是自然而然的事情。
这个例子是一个简单的Hadoop MapReduce读取Avro格式的源文件进行计数统计,然后将计算结果
- nginx定制500,502,503,504页面
ronin47
nginx 错误显示
server {
listen 80;
error_page 500/500.html;
error_page 502/502.html;
error_page 503/503.html;
error_page 504/504.html;
location /test {return502;}}
配置很简单,和配
- java-1.二叉查找树转为双向链表
bylijinnan
二叉查找树
import java.util.ArrayList;
import java.util.List;
public class BSTreeToLinkedList {
/*
把二元查找树转变成排序的双向链表
题目:
输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。
要求不能创建任何新的结点,只调整指针的指向。
10
/ \
6 14
/ \
- Netty源码学习-HTTP-tunnel
bylijinnan
javanetty
Netty关于HTTP tunnel的说明:
http://docs.jboss.org/netty/3.2/api/org/jboss/netty/channel/socket/http/package-summary.html#package_description
这个说明有点太简略了
一个完整的例子在这里:
https://github.com/bylijinnan
- JSONUtil.serialize(map)和JSON.toJSONString(map)的区别
coder_xpf
jqueryjsonmapval()
JSONUtil.serialize(map)和JSON.toJSONString(map)的区别
数据库查询出来的map有一个字段为空
通过System.out.println()输出 JSONUtil.serialize(map): {"one":"1","two":"nul
- Hibernate缓存总结
cuishikuan
开源sshjavawebhibernate缓存三大框架
一、为什么要用Hibernate缓存?
Hibernate是一个持久层框架,经常访问物理数据库。
为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能。
缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。
二、Hibernate缓存原理是怎样的?
Hibernate缓存包括两大类:Hib
- CentOs6
dalan_123
centos
首先su - 切换到root下面1、首先要先安装GCC GCC-C++ Openssl等以来模块:yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel2、再安装ncurses模块yum -y install ncurses-develyum install ncurses-devel3、下载Erang
- 10款用 jquery 实现滚动条至页面底端自动加载数据效果
dcj3sjt126com
JavaScript
无限滚动自动翻页可以说是web2.0时代的一项堪称伟大的技术,它让我们在浏览页面的时候只需要把滚动条拉到网页底部就能自动显示下一页的结果,改变了一直以来只能通过点击下一页来翻页这种常规做法。
无限滚动自动翻页技术的鼻祖是微博的先驱:推特(twitter),后来必应图片搜索、谷歌图片搜索、google reader、箱包批发网等纷纷抄袭了这一项技术,于是靠滚动浏览器滚动条
- ImageButton去边框&Button或者ImageButton的背景透明
dcj3sjt126com
imagebutton
在ImageButton中载入图片后,很多人会觉得有图片周围的白边会影响到美观,其实解决这个问题有两种方法
一种方法是将ImageButton的背景改为所需要的图片。如:android:background="@drawable/XXX"
第二种方法就是将ImageButton背景改为透明,这个方法更常用
在XML里;
<ImageBut
- JSP之c:foreach
eksliang
jspforearch
原文出自:http://www.cnblogs.com/draem0507/archive/2012/09/24/2699745.html
<c:forEach>标签用于通用数据循环,它有以下属性 属 性 描 述 是否必须 缺省值 items 进行循环的项目 否 无 begin 开始条件 否 0 end 结束条件 否 集合中的最后一个项目 step 步长 否 1
- Android实现主动连接蓝牙耳机
gqdy365
android
在Android程序中可以实现自动扫描蓝牙、配对蓝牙、建立数据通道。蓝牙分不同类型,这篇文字只讨论如何与蓝牙耳机连接。
大致可以分三步:
一、扫描蓝牙设备:
1、注册并监听广播:
BluetoothAdapter.ACTION_DISCOVERY_STARTED
BluetoothDevice.ACTION_FOUND
BluetoothAdapter.ACTION_DIS
- android学习轨迹之四:org.json.JSONException: No value for
hyz301
json
org.json.JSONException: No value for items
在JSON解析中会遇到一种错误,很常见的错误
06-21 12:19:08.714 2098-2127/com.jikexueyuan.secret I/System.out﹕ Result:{"status":1,"page":1,&
- 干货分享:从零开始学编程 系列汇总
justjavac
编程
程序员总爱重新发明轮子,于是做了要给轮子汇总。
从零开始写个编译器吧系列 (知乎专栏)
从零开始写一个简单的操作系统 (伯乐在线)
从零开始写JavaScript框架 (图灵社区)
从零开始写jQuery框架 (蓝色理想 )
从零开始nodejs系列文章 (粉丝日志)
从零开始编写网络游戏 
- jquery-autocomplete 使用手册
macroli
jqueryAjax脚本
jquery-autocomplete学习
一、用前必备
官方网站:http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/
当前版本:1.1
需要JQuery版本:1.2.6
二、使用
<script src="./jquery-1.3.2.js" type="text/ja
- PLSQL-Developer或者Navicat等工具连接远程oracle数据库的详细配置以及数据库编码的修改
超声波
oracleplsql
在服务器上将Oracle安装好之后接下来要做的就是通过本地机器来远程连接服务器端的oracle数据库,常用的客户端连接工具就是PLSQL-Developer或者Navicat这些工具了。刚开始也是各种报错,什么TNS:no listener;TNS:lost connection;TNS:target hosts...花了一天的时间终于让PLSQL-Developer和Navicat等这些客户
- 数据仓库数据模型之:极限存储--历史拉链表
superlxw1234
极限存储数据仓库数据模型拉链历史表
在数据仓库的数据模型设计过程中,经常会遇到这样的需求:
1. 数据量比较大; 2. 表中的部分字段会被update,如用户的地址,产品的描述信息,订单的状态等等; 3. 需要查看某一个时间点或者时间段的历史快照信息,比如,查看某一个订单在历史某一个时间点的状态, 比如,查看某一个用户在过去某一段时间内,更新过几次等等; 4. 变化的比例和频率不是很大,比如,总共有10
- 10点睛Spring MVC4.1-全局异常处理
wiselyman
spring mvc
10.1 全局异常处理
使用@ControllerAdvice注解来实现全局异常处理;
使用@ControllerAdvice的属性缩小处理范围
10.2 演示
演示控制器
package com.wisely.web;
import org.springframework.stereotype.Controller;
import org.spring