前景
Tomcat部署的JSP和SSM项目,前端使用Lay UI,需求是做一个类似商品列表展示图片和一些基本信息
首次尝试
使用LayUI的分页组件,进入页面get请求分页获取记录:
$.get("*****.do?page=1&limit=8",function(res,status){
let initData = JSON.parse(res);
layui.use([‘laypage‘, ‘layer‘,‘form‘], function(){
var laypage = layui.laypage;
var form = layui.form;
laypage.render({
elem: ‘picturePage‘
,count: initData.count
,limit: 8
,jump: function(obj, first){
//首次不执行
if(!first){
$.get("*****.do?page="+obj.curr+"&limit="+obj.limit+"",function(res,status){
initData = JSON.parse(res);
resetValue(initData)
});
}else {
resetValue(initData)
}
}
});
});
});
function resetValue(data) {
document.getElementById(‘picturePanel‘).innerHTML = function(){
var arr = [];
layui.each(data.data, function(index, item){
var url = ‘<%=request.getContextPath()%>‘ + ****; // 这里是图片地址
arr.push(
‘<div class="layui-col-md3 layui-col-sm3">\n‘ +
‘ <div class="cmdlist-container">\n‘ +
‘ <a href="javascript:;">\n‘ +
‘ <img src="‘ + url + ‘">\n‘ +
‘ </a>\n‘ +
‘ <a href="javascript:;">\n‘ +
‘ <div class="cmdlist-text">\n‘ +
‘ <p class="info">‘ + **** + ‘</p >\n‘ +
‘ <div class="price">\n‘ +
‘ <b>‘ + **** + ‘</b>\n‘ +
‘ <span class="flow">\n‘ +
‘ <i class="layui-icon layui-icon-username"></i>\n‘ +
‘ ‘ + **** + ‘\n‘ +
‘ </span>\n‘ +
‘ </div>\n‘ +
‘ </div>\n‘ +
‘ </a>\n‘ +
‘ </div>\n‘ +
‘</div>‘
);
});
return arr.join(‘‘);
}();
}
问题出现
无论怎么改tomcat的几个配置文件(server.xml,web.xml甚至catalina.bat)的url和file的encoding为UTF-8,更改IDEA编辑器编码UTF-8,配置Spring MVC的配置文件,都没办法解决下面的问题:
检查元素正常,但是图片请求404,右键新标签页打开图片URL直接改变了,并出现了灵异的%E2%80%AA字符串:
检查数据库字段没有:
console.log(url);也正常,烦了一天左右,组长看完也是懵的,索性加上了下面这段代码:
然后解决了???不知到底是什么原因,数据库字符集是utf8mb4,排序规则是utf8mb4_0900_ai_ci,不知道到底哪里出现了这段神秘的编码
原文:https://www.cnblogs.com/ALuShu/p/14609742.html