# picture **Repository Path**: forevernow/picture ## Basic Information - **Project Name**: picture - **Description**: No description available - **Primary Language**: Unknown - **License**: MulanPSL-1.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-04-15 - **Last Updated**: 2022-02-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README >我的所谓的天才,只不过是刻苦罢了 ##访问地址 localhost:8080/picture/tologin/login ###一、logback配置 1.参考地址: https://www.cnblogs.com/zsty/p/10608953.html ###二、logback配置步骤 ###三、SSM中静态资源无法加载的问题[https://www.jianshu.com/p/4cf0933a5bc7] 场景一:和WEB-INF目录不可访问有关 WEB-INF/web.xml中前端控制器拦截路径为*.do、*.action这样的后缀名匹配时,静态资源并不会被拦截。 如果此时请求不到静态资源,可能是静态资源位于不可直接访问的目录下(比如:WEB-INF下)。这时应该将静态资源放在可以直接访问到的目录下(例如:webapp下)。 场景二:和前端控制器有关 如果WEB-INF/web.xml中前端控制器拦截路径为 / 这样的路径时,这时所有的请求都会被拦截(除了jsp和html页面),包括静态资源也会被拦截。此时静态资源放在WEB-INF下或者WEB-INF外面都没有什么影响。 如果此时请求不到静态资源,解决办法是在spring的配置文件中使用 其中mapping的路径是指客户端在请求静态资源时除了项目根路径后面的路径。 location的路径是指在项目目录中从webapp下开始的路径。/**代表匹配多级目录下的所有文件 如果WEB-INF/web.xml中前端控制器拦截路径为 /* 这样的路径时,这时所有的请求都会被拦截(包括jsp和html页面),包括静态资源也会被拦截。应该和上面场景二的解决办法一样。 ###四、配置shrio时出现的问题 错误:No WebApplicationContext found: no ContextLoaderListener registered? 解决:SSM框架整合时Spring的包全部用的4.1.7的版本,将SSM框架的Spring包改成4.2.4 ###五、用户表,角色表,权限表设计 ``` select * from t_perm_role; insert into t_perm_role(perm_id,role_code,perm_code,perm_name,status) values('1','customer_user','select','chaxun','1'); insert into t_perm_role(perm_id,role_code,perm_code,perm_name,status) values('2','customer_user','delete','delete','1'); insert into t_perm_role(perm_id,role_code,perm_code,perm_name,status) values('3','customer_user','add','add','1'); insert into t_perm_role(perm_id,role_code,perm_code,perm_name,status) values('4','customer_user','edit','edit','1'); select * from t_user_role_perm; insert into t_user_role_perm() values('1','3','customer_user','select','1'); insert into t_user_role_perm() values('2','3','customer_user','edit','1'); insert into t_user_role_perm() values('3','3','customer_user','delete','1'); insert into t_user_role_perm() values('4','3','customer_user','add','1'); ``` ###六、用户登陆验证 20200715 ``` controller:LoginController 包含进入登录页,登录校验等逻辑处理 ``` ###七、JSP页面EL表达式依赖 --- dependency ``` javax.servlet jstl 1.2 taglibs standard 1.1.2 ``` ###八、web.xml文件的头如下: ``` ``` ### 九、layui使用遇到的问题 20200616 1. js 引入的问题 - 路径 - 模块化加载和非模块化加载使用的[jslayui.all.js ] [layui.js] - layui可模块化加载其他资源,如jquary.js等 ### 十、controller资源重定向问题 1. 路径写法 / 一定要写在最前,否则重定向路径是从WEB-INF下开始,这样的路径是错误的 ### 十一、nepadmin 后台单页面模板(作为参考) 基于 layui。
遵循原生 HTML/CSS/JS 的书写与组织形式,上手容易,拿来即用。
最低兼容到IE8浏览器。
### 十二、[在线预览](https://june000.gitee.io/nep-admin/) ### 十三、layui乱码的问题 经过查找和询问:解决方式如下: 1. 将项目中的资源文件拷到本地,直接在浏览器中打开,发现展示图标就是乱码 2. 确定乱码问题:项目中的图标库不知道做了什么处理,可能是改变了过滤器的编码导致二进制的图标乱码 3. 解决: 从layui官网重新下载一份插件,将新的图标库替换原来的图标库,重新运行项目,图标乱码问题已解决。 ### 十四、jetty启动maven项目,调试debug时,修改js文件必须关闭jetty才能保存 1. 在Jetty中,web.xml文件用于定义Servlet 的映射。任何网页应用程序在使用web.xml之前都会先应用webdefault.xml文件,因为webdefault.xml是一个默认的配置文件, Jetty根据webdefault.xml文件中的内容配置web应用的诸如JSP,默认的Servlet和Invoker. webdefault.xml没有固定的位置,名称也可以换成另外一个,因为web应用程序能够通过org.mortbay.jetty.webapp.WebAppContext.setDefaultsDescriptor(String filename)显式加载配置。 不过要注意的是,这个方法中传入的参数是文件名,不是文件路径。Jetty会首先在 classloader classpath路径下查找,如果失败, 则会在文件系统中进行查找。如果不使用显示加载的方式,则webdefault.xml会被Jetty应用。 2. 找到webdefault.xml,在jetty-webapp目录下,将jar包解压开,修改webdefault.xml中的 ‘useFileMappedBuffer’ 的属性为 false 将次xml文件放到和pom.xml同级的目录下,在pom.xml中添加 ``` webdefault.xml ``` ``` useFileMappedBuffer false ``` ### 十五、JS出现的错误: unexpected token 1.最近遇到的问题:有可能是解析数据时报的错,而且引用了jquary,实际报错信息在 unexpected token 后面。 2.其实这个错误提示是告诉我们: - 数据有特殊字符;数据有特殊字符;数据有特殊字符; ### 十六、IntelliJ IDEA使用JUnit单元测试 1.安装JUnit插件步骤 File-->settings-->Plguins-->Browse repositories-->输入JUnit-->选择JUnit Generator V2.0安装。 2.使用JUnit插件 在需要进行单元测试的类中,使用快捷键alt+insert,选择JUnit test,选择JUnit4。 --- ### 十七、数据库错误 ``` 1. Cause: java.sql.SQLException: Incorrect string value: '\xE7\xAE\xA1\xE7\x90\x86...' for column 'role_name' at row 1 ``` ### 十八、列表展示 ```aidl <?php echo $curTitle;?>
    ``` --- ```aidl layui.use(['element', 'layer', 'jquery'], function () { var element = layui.element; // var layer = layui.layer; var $ = layui.$; // 配置tab实践在下面无法获取到菜单元素 $('.site-demo-active').on('click', function () { var dataid = $(this); //这时会判断右侧.layui-tab-title属性下的有lay-id属性的li的数目,即已经打开的tab项数目 if ($(".layui-tab-title li[lay-id]").length <= 0) { //如果比零小,则直接打开新的tab项 active.tabAdd(dataid.attr("data-url"), dataid.attr("data-id"), dataid.attr("data-title")); } else { //否则判断该tab项是否以及存在 var isData = false; //初始化一个标志,为false说明未打开该tab项 为true则说明已有 $.each($(".layui-tab-title li[lay-id]"), function () { //如果点击左侧菜单栏所传入的id 在右侧tab项中的lay-id属性可以找到,则说明该tab项已经打开 if ($(this).attr("lay-id") == dataid.attr("data-id")) { isData = true; } }) if (isData == false) { //标志为false 新增一个tab项 active.tabAdd(dataid.attr("data-url"), dataid.attr("data-id"), dataid.attr("data-title")); } } //最后不管是否新增tab,最后都转到要打开的选项页面上 active.tabChange(dataid.attr("data-id")); }); var active = { //在这里给active绑定几项事件,后面可通过active调用这些事件 tabAdd: function (url, id, name) { //新增一个Tab项 传入三个参数,分别对应其标题,tab页面的地址,还有一个规定的id,是标签中data-id的属性值 //关于tabAdd的方法所传入的参数可看layui的开发文档中基础方法部分 element.tabAdd('demo', { title: name, content: '', id: id //规定好的id }) FrameWH(); //计算ifram层的大小 }, tabChange: function (id) { //切换到指定Tab项 element.tabChange('demo', id); //根据传入的id传入到指定的tab项 }, tabDelete: function (id) { element.tabDelete("demo", id);//删除 } }; function FrameWH() { var h = $(window).height(); $("iframe").css("height",h+"px"); } }); ```