以下是工作中遇见的常见问题。还望各位大神指出不足之处,不甚感激。我所开发的项目框架:spring+springMVC+mybatis 前台纯静态页面
1:在项目中,当启动后台的时候会一直加载类似于进入死循坏,并会多次读取同一个文件,这时候你应该停止运行,并通过控制台显示的找出具体哪个XML有问题
2:在前台页面中的Console出现Maximum call stack size exceeded,前台栈溢出。通过在网上查阅资料发现造成这样的原因为: 一,递归调用 二,引入冲突的js库 三,代码原因
前台页面用的bootstrapValidator进行校验的,认真检查了代码没有发现出现以上的问题,后来才知道是因为插件的用法出现了问题所导致这是最近两次遇见的问题: 该插件在需要校验的的属性加上class='form-control',并且还要在他的上一层加上class='form-group' 如:
<div class='form-group'>
<input class='form-control' name='type' />
<div>
ps: 如果只是加了form-group 没有加form-control,页面不会报错,但不会校验,参考bootstrapValidatorAPI
3:给一个文本域加上disabled属性后来达到不可编辑的效果,点击提交后获取不到此文本框的值,后台为null。查看后发现,disabled属性是不支持与后台交互的,所以我的处理方法是:在点完成之前,把“disbaled”属性移除掉就行了,这时候啊还是可以正常往后台传值的。这里是关于disabled属性的设置与取消:
//两种方法设置disabled属性
$("#areaSelect").attr("disabled","disabled");
$("#areaSelect").attr("disabled",true);
//三种方法移除disabled属性
$("#areaSelect").attr("disabled","");
$("#areaSelect").attr("disabled",false);
$("#areaSelect").removeAttr("disabled");
4:做到用户管理时,希望人名汉字按照首字母来进行排序,汉字首字母排序:orderby时并不是想要得出的结果,这是因为在mysql中,默认采用的是iso8859-1,对汉字字段直接使用GBK内码的编码进行存储,而现在我们大多数都采用utf8,我所采用的做法是将utf8字符集转成gbk,具体做法如下:
SELECT
ROLE_NAME,
FROM
T_SYS_USER
ORDER BY CONVERT(ROLE_NAME USING gbk )COLLATE gbk_chinese_ci ASC
5:mybatis中,一个数据类型为Integer值为0时,查不到数据。代码如下:
html:
<li>
<label>状态</label>
<select id="status">
<option value="">--请选择--<option>
<option value="0">否<option>
<option value="1">是<option>
</select>
</li>
mapper.xml:
<if test=" status !=null and status !='' ">
status = #{stuta}
</if>
后来发现参数类型为Integer 值为0时,传入后台时当作为‘’ ,所以也不会进入下面的判断,巨坑。
解决办法:
mapper.xml:
<if test=" status !=null and (status==0?'0':status) ">
status = #{status}
</if>
6:使用mysql自带锁时 有两个方法 get_lock(lockName,timeout) :分配一个lockName的锁,超时时间为timeout,当上锁后,其他用户获取不到该锁; release_lock(lockName):释放名为lockName的锁。 使用时报错 :incorrect user-level lock name '***' 用户级锁名称不正确 原因:mysql版本 >= 5.6.5 锁名有了限制,做大64个字符
7:前端requireJS使用引入模块化时,调用模块的方法,前台控制台打印:***not defined (此方法没有定义),检查引入和代码没有问题,主要时因为requirejs出现了循环依赖的错的, 我A调用了B B调用了C 而C又调用了A 导致