记录一下学习JAVA过程中所遇到的问题(持续更新)

一.在使用JQuery过程中,得到后台JSON数据,在js里面使用$.each()方法的时候报错如下

        SyntaxError: JSON.parse: expected property name or '}' at line 1 column 3 of。

后台得到的JSON数据:

[{id:1,name:'四川'},{id:2,name:'广东'},{id:3,name:'陕西'}]

前台html和js代码:

    省份
     城市
    

===================

$(function() {
    $.get("/linkage/byJson.action",{}, function(data) {
        console.debug(d);
        $.each(d,function(index,item){
            $("#provinceId").append("");
        });
    }, "json");

});

查找原因之后发现是不能解析JSON字符串,因此在使用后台发送的响应数据时,先转换为JSON,即在第二行后面加下面代码:

var d=eval("("+data+")");

另一种解决方案是:在后台拼接字符串的时候,属性需要加上单引号,即id,name都需要加上单引号

二.新建maven项目时jsp界面报The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path 这样的错。

解决如下:

1.eclipse----->window----->prefenerces------>server----->Runtime Environments---->Add

 

---->选择一个TomCat的版本----->(选择tomcat的安装地址)

2.右击web工程->属性或Build Path->Java Build Path -> Libraries -> Add Library... ->Server Runtime -> Tomcat Server

三.热部署使用JRebel非常方便,省去了不断重启的烦恼(https://github.com/ilanyu/ReverseProxy/releases/tag/v1.0里面有jrebel的激活可执行程序),首先进行如下设置:

记录一下学习JAVA过程中所遇到的问题(持续更新)_第1张图片

之后使用JRebel启动,需要热部署可以按ctrl+f9。

四.使用JQuery插件zTree生成动态菜单树时出错,现在仍不知道是什么原因。当代码如下时:

记录一下学习JAVA过程中所遇到的问题(持续更新)_第2张图片我觉得可能是由于使用了. 导致失败,但是老师的就可以生成成功,而且我在前台查看发出的请求,url第定位到了我的action中的,响应回来的却不是我在action放入的数据,随后改变js,代码如下:记录一下学习JAVA过程中所遇到的问题(持续更新)_第3张图片,就可以成功生成菜单树,在后台action中定义

接收异步传来的参数(本来定义成qo.parentSn是想用qo对象来调用封装的parentSn属性的)。

五. 在chorme 37以后,谷歌就已经把showModalDialog这个函数停用了,把停用的showModalDialog改成window.open就可以打开子窗体了

六.使用window.open遇到的问题:

父页面的代码:记录一下学习JAVA过程中所遇到的问题(持续更新)_第4张图片记录一下学习JAVA过程中所遇到的问题(持续更新)_第5张图片

子页面的代码:

记录一下学习JAVA过程中所遇到的问题(持续更新)_第6张图片

七.JRebel插件激活教程:https://www.cnblogs.com/zhengsc/p/8494066.html

八.上传本地代码到Github。

    上传需要安装git工具,国内打不开官网,需要,不能的同学可以自己找国内下载资源,这里我提供一个Windows64的资源:https://npm.taobao.org/mirrors/git-for-windows/v2.17.0.windows.1/Git-2.17.0-64-bit.exe

    上传步骤的原文地址:点击打开链接

   上传报错git Please tell me who you are解决方法:在add之前执行下面命令:

    git config user.name "someone"

    git config user.email "[email protected]"

九.在ssm整合是使用ajax跳转的时候总是跳转到SpringMVC配置的视图解析器那边。

在login.jsp中

定义相应的点击事件

记录一下学习JAVA过程中所遇到的问题(持续更新)_第7张图片

在controller层验证登录和SpringMVC中的视图解析器

记录一下学习JAVA过程中所遇到的问题(持续更新)_第8张图片

记录一下学习JAVA过程中所遇到的问题(持续更新)_第9张图片

按理说应该点击之后应该跳到ajax中success中的函数中去,但实际上一直跳到视图解析器那边,也就是一直跳到/WEB-INF/views/login.jsp去,因此一直报404错误,检查了两个多小时,原来问题是由于没有贴上@ResponseBody注解的原因。关于该注解的详细说明点击打开链接

记录一下学习JAVA过程中所遇到的问题(持续更新)_第10张图片

十.easyui传数据到后台乱码的问题,所有配置都设置了编码,贴吧链接问题描述。在配置过滤器时将/*写成了/,前者会过滤掉所有请求,而后者有两种说法,一是不会过滤.jsp的请求,而是不过滤带后缀的请求,下次有空再尝试一下。

11.在使用easyui进行编辑数据(需要回显数据)的时候,与员工关联的部门的数据总是只有一部分,还有部分缺失(id),前台的jsp页面

表中的部门列

然后是进行编辑的时候相应的js代码

记录一下学习JAVA过程中所遇到的问题(持续更新)_第11张图片

按理说应该会返回员工的数据及其相关联的部门数据,但是却不是

记录一下学习JAVA过程中所遇到的问题(持续更新)_第12张图片

检查之后发现是在EmployeeMapper.xml之中没有关联dept的id记录一下学习JAVA过程中所遇到的问题(持续更新)_第13张图片

关联之后一切正常记录一下学习JAVA过程中所遇到的问题(持续更新)_第14张图片

12.新建maven项目,成功之后发现项目有个小红叉,打开window的show的problem观察报错四五个,网上方法试了很多都没有用,最后解决如下:

首先在硬盘下找到  \项目名\.setting\文件夹下的   org.eclipse.wst.common.project.facet.core.xml  xml文件。将jst.web,的version改成3.0.然后在eclipse里右键该工程--maven--updateProject即可。

13.在做ssm项目的时候,做到AOP日志管理的时候遇见一个事务方面的报错,如下,大致就是只读事务的意思

我随后检查spring配置,发现只有查询的操作才配置的只读事务,而我的aop日志写入数据库(insert方法)的时候并不是只读的。原因是由于我在写入日志的时候需要获取当前的操作用户,那就必须得到session,因此在登录的时候我就获取到当前线程的session。而由于登录时需要查询,这个操作时只读事务,而spring配置中使用的事务策略是默认的"REQUIRED",这个策略就表示如果没有事务就开启事务,如果有就使用当前事务,因此在进行保存日志信息的时候就使用了只读事务了,因此报错。解决策略,只需配置成下图的策略就行了。记录一下学习JAVA过程中所遇到的问题(持续更新)_第15张图片

在配置为supports之后,原来有事务就用原来的事务,如果没有也不开启事务,那么在登陆的时候是没有事务开启的,因此来到insert保存日志的时候就会另开一个事务,默认的是REQUIRED

注:关于spring的几种事务策略

记录一下学习JAVA过程中所遇到的问题(持续更新)_第16张图片

13.在尝试做权限的重新加载这个功能的时候,遇到cotriller层一直报空指针错误。首先我是在controller层定义了一个重新加载权限的方法reload,还有一个权限列表的方法list。

记录一下学习JAVA过程中所遇到的问题(持续更新)_第17张图片

由于刚开始没有传入permissionServerce,所以报空指针,原因是,我实在list方法里面调的reload方法,如果不传入service,由于不是一个新的请求,故controller没有注入一个新的service所以报空指针。

14.spring拦截其中mapping的path的几个写法:a./。 b./*。 c./**。具体参见:点击打开链接

15.使用spring注入静态字段的时候会报空指针,这时候只需要注入该静态字段的setter方法就行了,比如下面这样:

记录一下学习JAVA过程中所遇到的问题(持续更新)_第18张图片

16.关于在javaweb应用中多用户并发访问数据库的情况:点击打开链接

17.一个关于包装类型和基本类型所引发的错误。我在前台使用的easyui的datagrid发送请求给后台controller,然后controller层再将前台的高级查询对象QO封装好,问题就出在这而,我的高级查询对象是DepartmentQueryObject只有两个字段,一个keyword,一个是布尔类型的state,在前台没有点击高级查询的按钮的时候,只是普通请求过来的时候,查询对象的state一直是false,就导致了在数据库一直进行高级查询state=false。其实在没有进行高级查询的时候,qo里面相当于没有前台注入的值,因此应该全是默认值,那么state就应该是false,随后将state字段换成包装类型就ok了。

18.Springboot热部署配置。我所了解到有三种方法(都在eclipse基础上)

    (1)第一种是在命令行使用mvn命令可以,在pom中添加依赖如下

记录一下学习JAVA过程中所遇到的问题(持续更新)_第19张图片

     (2)第二种是使用java run config运行,需要下载springcloaded的jar包,可以再maven仓库找到。

eclispe中运行配置里参数设置里面设置VM,

记录一下学习JAVA过程中所遇到的问题(持续更新)_第20张图片

路径写自己相应的jar包路径

记录一下学习JAVA过程中所遇到的问题(持续更新)_第21张图片

 

    (3)运行springboot app的方式

热部署pom配置

记录一下学习JAVA过程中所遇到的问题(持续更新)_第22张图片

每次更改之后需要编译才会生效,可以自动编译也可以手动。

    注:idea中我使用的是第三种方式。

19.在springboot集成数据库的时候一直报错知不道com.mysql.jdbc.Driver类的异常,试了很多网上方法,配置文件后面也没有跟空格,之后更改mysql驱动的版本才解决了,至今不知道是什么原因,之前用的5.1.46,后更改为5.1.21

20.springboot集成mybatis时Access denied for user ''@'localhost' using password NO。看了很多人报的错是password YES并且前面是user'root'这种,他们大多数是由于密码或者账户权限的问题,而我之前一直用的好好的,在eclispe使用spring集成mybatis的时候却出现这个问题。真的是折磨了我一天,难受,各种检查各种改。之后完了吧游戏发现是application里面自动注入的时候出错了正确是datasource.druid.  而我却少写了ddruid记录一下学习JAVA过程中所遇到的问题(持续更新)_第23张图片因此没有注入账户密码,因此user后面是空,password也是no。出现同类型的问题的朋友需要反复检查是否注入成功账户密码。

之后还出现了Driver这个类找不到,依赖那些全都导入了的,至今都不知道什么原因。后面直接换IDEA所有的都正常了。还有部分依赖导入不生效的问题,可以尝试换个版本,我的lombok就是这个原因。

21.在springboot集成mybatis中出现一直报如下的错误:                  

由于我的mapper文件和java文件放在一起的,因此是不会自动编译到classpath目录下的,所以需要配置一下

记录一下学习JAVA过程中所遇到的问题(持续更新)_第24张图片  这样就可以使java目录下的xml文件编译到classpath目录下了。

22.详解mysql数据库实现读写分离。主要是设置主从数据库,然后在代码层面实现读写分离:点击打开链接

23.springboot连接数据库报错:java.sql.SQLException: The server time zone value 'Öйú±ê×¼

解决办法:https://blog.csdn.net/qq_39098813/article/details/81138648

24.报错java.nio.charset.MalformedInputException: Input length = 1 原因是yml格式错误

25.报错ava.sql.SQLException: Access denied for user ''@'localhost' (using password: YES)。 注意中间@后面为空不是@root,原因是yml中不使用datasource-username,直接使用username。password也是

26.springboot连接数据库控制台提示Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdb。改为:现在按照最新官方提示支持将com.mysql.jdbc.Driver  改为  com.mysql.cj.jdbc.Driver。详见:https://blog.csdn.net/anaini1314/article/details/71157791

27.thymeleaf在idea中没有语法提示,htmlto头也添加了,最后检查是idea没有启用thymeleaf插件。

28.ajax发送请求所携带的参数在springboot的后台乱码。原因是未在js里面把数据转为标准的json格式。如:

data: JSON.stringify({content: content})

你可能感兴趣的:(问题)