四个问题
一、前端用jquery,但是$下面有波浪线
存在的问题:应该是系统中没有配置jquery,这也是在网上找的
idea–》file–》setting–》language&framework–》js–》library–》里边有个按钮add(一般点这个就行)–》找到自己的js库(也是是jquery1.12.4.min.js(随便的版本都行)),这里跟一张网上的图
保存–》重启idea
不确定是否能解决
二、前端使用jsp,与后端通过ajax进行进行交互,通过json格式接收,
为什么一直接收不到数据
modelAndView,这个是指定视图,而你要接收一个json格式的数据,因为回调函数success后边括号中需要,就是ajax中的success,那么肯定传输视图是不行的,那么怎么做能,我之前学的是html与ajax跟后台交互,这个就不用细说,基本格式,拿过来一个对象就行了,回调函数就可以接收,我以为这个jsp跟html不一样,所以就尝试了modelAndView,这个是思想的错误,简单来说就是死路错了,你不知道要传输什么,让前台去接收,所以最根本的东西都错了,你之后做的再怎么完美都是无用的,其实这个跟html+ajax跟后端交互与jsp+ajax与后端交互是一样的,都是拿到对象就可以了,显然要传输一个对象,这个代码层面:
第一步 创建实体类JsonResult(status-成功的状态,msg-成功或异常信息,data-存放要传输给前台需要的数据,把这个整体当做一个对象),应该不太难理解吧
第二步 service和serviceImpl中返回值就是JsonResult
第三步 controller中,接收请求之后不返回modelAndView,返回JsonResult就行了
三、用mybatis做数据访问层,实体类属性与数据库字段一模一样,sql语句没有问题,但是仍然接收到的对象为null
问题思路:实体类中的属性与数据库中一模一样,这没有错,之前用的不就是这个吗,对确实没错,是mybatis,它错了,你的实体类中尽量还是别用下划线,因为你的数据库中如果用了下划线,那么,你实体类中就不能跟数据中的一样,就是说表面上看上去一样,这样,你再看上一万遍,你看着一点问题都没有,但是确实还是有问题,网上我也查了很多,就是说你的实体类属性与数据库中不一样,但是我当时没有注意那个细节,一直在看,到底问题出在哪里了,我有啥错,你搞我的吧,就是一个细节:
mybatis中,数据库中带有下划线,对应实体类中下划线的下一个字母需要大写,栗子:数据库中u_username,实例类中uUsername,就必须要这样写,这时mybatis中一个一个细节吧,长知识吧,继续下一个
四、jquery与el表达式同时存在,是否会出现冲突,怎么解决
解决方案:冲突肯定会有,但是我没有解决,EL表达式中用美元符号,jquery中也用美元符号,谁知道你指代的是谁,肯定会有冲突,这个回答是肯定的,很坚定!!!解决的话,可以把jquery中的美元符号用其他字符电梯,因为jquery在设计的时候就考虑到这个问题了,所以就有了
var $j = jQuery.noConflict();
var后边可以任意写,但是之后用到美元符号就得用你写的东西去替代了,所以没必要写的复杂,这个也就是在当前html或jsp中使用,到另一个html或jsp中就可以还是使用美元符号就行了,主要是为了区别EL表达式,可能是EL表达式出现的早,jquery才得将就着人家来该自己的代码